Alexey Kudinkin created HUDI-5188:
-------------------------------------

             Summary: ClassCastException: class 
HoodieBackedTableMetadataWriter$DirectoryInfo cannot be cast to class 
HoodieBackedTableMetadataWriter$DirectoryInfo
                 Key: HUDI-5188
                 URL: https://issues.apache.org/jira/browse/HUDI-5188
             Project: Apache Hudi
          Issue Type: Bug
            Reporter: Alexey Kudinkin


After XXX, started to get following exception when running trivial Spark DS 
workloads:
{code:java}
import org.apache.hudi.DataSourceWriteOptions
import org.apache.hudi.DataSourceWriteOptions.{PRECOMBINE_FIELD, 
RECORDKEY_FIELD}
import org.apache.spark.sql.{SaveMode, SparkSession}

val spark: SparkSession

import spark.implicits._

val basePath = "/tmp/test"
val writerOpts: Map[String, String] = Map(
  "hoodie.table.name" -> "test",
  "hoodie.table.type" -> "COPY_ON_WRITE",
  PRECOMBINE_FIELD.key() -> "id",
  RECORDKEY_FIELD.key() -> "id",
  DataSourceWriteOptions.PARTITIONPATH_FIELD.key() -> "dt"
)

val firstBatchDF = (for (i <- 0 until 10) yield (i, s"a$i", 10 + i, 10000,
  s"2021/03/0${i % 2 + 1}", s"${i % 3}")).toDF("id", "name", "price", 
"version", "dt", "hh")

firstBatchDF.write.
  options(writerOpts).
  option("hoodie.parquet.compression.codec", "gzip").
  format("hudi").
  mode(SaveMode.Overwrite).
  save(basePath) {code}
{code:java}
java.lang.ClassCastException: class 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter$DirectoryInfo cannot 
be cast to class 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter$DirectoryInfo 
(org.apache.hudi.metadata.HoodieBackedTableMetadataWriter$DirectoryInfo is in 
unnamed module of loader org.apache.spark.util.ChildFirstURLClassLoader 
@3b1895e; 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter$DirectoryInfo is in 
unnamed module of loader 
scala.reflect.internal.util.ScalaClassLoader$URLClassLoader @58882a93)   at 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.listAllPartitions(HoodieBackedTableMetadataWriter.java:645)
   at 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.initialCommit(HoodieBackedTableMetadataWriter.java:1070)
   at 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.initializeFromFilesystem(HoodieBackedTableMetadataWriter.java:560)
   at 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.initializeIfNeeded(HoodieBackedTableMetadataWriter.java:393)
   at 
org.apache.hudi.metadata.SparkHoodieBackedTableMetadataWriter.initialize(SparkHoodieBackedTableMetadataWriter.java:120)
   at 
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.<init>(HoodieBackedTableMetadataWriter.java:173)
   at 
org.apache.hudi.metadata.SparkHoodieBackedTableMetadataWriter.<init>(SparkHoodieBackedTableMetadataWriter.java:89)
   at 
org.apache.hudi.metadata.SparkHoodieBackedTableMetadataWriter.create(SparkHoodieBackedTableMetadataWriter.java:75)
   at 
org.apache.hudi.client.SparkRDDWriteClient.initializeMetadataTable(SparkRDDWriteClient.java:514)
   at 
org.apache.hudi.client.SparkRDDWriteClient.doInitTable(SparkRDDWriteClient.java:499)
   at 
org.apache.hudi.client.BaseHoodieWriteClient.initTable(BaseHoodieWriteClient.java:1548)
   at 
org.apache.hudi.client.BaseHoodieWriteClient.initTable(BaseHoodieWriteClient.java:1580)
   at 
org.apache.hudi.client.SparkRDDWriteClient.upsert(SparkRDDWriteClient.java:156) 
  at org.apache.hudi.DataSourceUtils.doWriteOperation(DataSourceUtils.java:206) 
  at 
org.apache.hudi.HoodieSparkSqlWriter$.write(HoodieSparkSqlWriter.scala:331)   
at org.apache.hudi.DefaultSource.createRelation(DefaultSource.scala:148)   at 
org.apache.spark.sql.execution.datasources.SaveIntoDataSourceCommand.run(SaveIntoDataSourceCommand.scala:45)
   at 
org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:75)
   at 
org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:73)
   at 
org.apache.spark.sql.execution.command.ExecutedCommandExec.executeCollect(commands.scala:84)
   at 
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.$anonfun$applyOrElse$1(QueryExecution.scala:110)
   at 
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$5(SQLExecution.scala:103)
   at 
org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:163)
   at 
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$1(SQLExecution.scala:90)
   at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:775)   at 
org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:64)
   at 
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:110)
   at 
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:106)
   at 
org.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$transformDownWithPruning$1(TreeNode.scala:481)
   at 
org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:82)
   at 
org.apache.spark.sql.catalyst.trees.TreeNode.transformDownWithPruning(TreeNode.scala:481)
   at 
org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.org$apache$spark$sql$catalyst$plans$logical$AnalysisHelper$$super$transformDownWithPruning(LogicalPlan.scala:30)
   at 
org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.transformDownWithPruning(AnalysisHelper.scala:267)
   at 
org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper.transformDownWithPruning$(AnalysisHelper.scala:263)
   at 
org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.transformDownWithPruning(LogicalPlan.scala:30)
   at 
org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.transformDownWithPruning(LogicalPlan.scala:30)
   at 
org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:457)  
 at 
org.apache.spark.sql.execution.QueryExecution.eagerlyExecuteCommands(QueryExecution.scala:106)
   at 
org.apache.spark.sql.execution.QueryExecution.commandExecuted$lzycompute(QueryExecution.scala:93)
   at 
org.apache.spark.sql.execution.QueryExecution.commandExecuted(QueryExecution.scala:91)
   at 
org.apache.spark.sql.execution.QueryExecution.assertCommandExecuted(QueryExecution.scala:128)
   at 
org.apache.spark.sql.DataFrameWriter.runCommand(DataFrameWriter.scala:848)   at 
org.apache.spark.sql.DataFrameWriter.saveToV1Source(DataFrameWriter.scala:382)  
 at 
org.apache.spark.sql.DataFrameWriter.saveInternal(DataFrameWriter.scala:355)   
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:239)   ... 
54 elided
 
{code}
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to