I can't imagine any Spark data source using Spark internals compiled on
Spark 2.4 working on 3.0 out of the box. There are many braking changes.
I'll try to get a *dev* branch for 3.0 soon (mid Jan).

Best,
Burak

On Mon, Dec 30, 2019, 8:53 AM Jean-Georges Perrin <j...@jgp.net> wrote:

> Hi there,
>
> Trying to run a very simple app saving content of a dataframe to Delta
> Lake. Code works great on 2.4.4 but fails on 3.0.0 preview & preview 2.
> Tried on both Delta Lake 0.5.0 and 0.4.0.
>
> Code (I know, it’s amazing):
>
>     df.write().format("delta")
>         .mode("overwrite")
>         .save("/tmp/delta_grand_debat_events");
>
> Exception raised:
>
> Exception in thread "main"
> com.google.common.util.concurrent.ExecutionError:
> java.lang.NoSuchMethodError:
> org/apache/spark/util/Utils$.classForName(Ljava/lang/String;)Ljava/lang/Class;
> (loaded from
> file:/Users/jgp/.m2/repository/org/apache/spark/spark-core_2.12/3.0.0-preview/spark-core_2.12-3.0.0-preview.jar
> by sun.misc.Launcher$AppClassLoader@7da46134) called from interface
> org.apache.spark.sql.delta.storage.LogStoreProvider (loaded from
> file:/Users/jgp/.m2/repository/io/delta/delta-core_2.12/0.5.0/delta-core_2.12-0.5.0.jar
> by sun.misc.Launcher$AppClassLoader@7da46134).
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199)
> at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
> at com.google.common.cache.LocalCache$LocalManualCache.get(
> LocalCache.java:4736)
> at org.apache.spark.sql.delta.DeltaLog$.apply(DeltaLog.scala:740)
> at org.apache.spark.sql.delta.DeltaLog$.forTable(DeltaLog.scala:702)
> at org.apache.spark.sql.delta.sources.DeltaDataSource.createRelation(
> DeltaDataSource.scala:126)
> at
> org.apache.spark.sql.execution.datasources.SaveIntoDataSourceCommand.run(
> SaveIntoDataSourceCommand.scala:46)
> at
> org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(
> commands.scala:71)
> at
> org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(
> commands.scala:69)
> at org.apache.spark.sql.execution.command.ExecutedCommandExec.doExecute(
> commands.scala:87)
> at org.apache.spark.sql.execution.SparkPlan.$anonfun$execute$1(
> SparkPlan.scala:189)
> at
> org.apache.spark.sql.execution.SparkPlan$$Lambda$1437.00000000CC2CD020.apply(Unknown
> Source)
> at org.apache.spark.sql.execution.SparkPlan.$anonfun$executeQuery$1(
> SparkPlan.scala:227)
> at
> org.apache.spark.sql.execution.SparkPlan$$Lambda$1461.00000000CFA16C20.apply(Unknown
> Source)
> at org.apache.spark.rdd.RDDOperationScope$.withScope(
> RDDOperationScope.scala:151)
> at org.apache.spark.sql.execution.SparkPlan.executeQuery(
> SparkPlan.scala:224)
> at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:185)
> at org.apache.spark.sql.execution.QueryExecution.toRdd$lzycompute(
> QueryExecution.scala:110)
> at org.apache.spark.sql.execution.QueryExecution.toRdd(
> QueryExecution.scala:109)
> at org.apache.spark.sql.DataFrameWriter.$anonfun$runCommand$1(
> DataFrameWriter.scala:829)
> at
> org.apache.spark.sql.DataFrameWriter$$Lambda$2070.00000000CFB38020.apply(Unknown
> Source)
> at
> org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$4(
> SQLExecution.scala:100)
> at
> org.apache.spark.sql.execution.SQLExecution$$$Lambda$1155.00000000CF955820.apply(Unknown
> Source)
> at org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(
> SQLExecution.scala:160)
> at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(
> SQLExecution.scala:87)
> at org.apache.spark.sql.DataFrameWriter.runCommand(
> DataFrameWriter.scala:829)
> at org.apache.spark.sql.DataFrameWriter.saveToV1Source(
> DataFrameWriter.scala:309)
> at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:293)
> at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:236)
> at net.jgp.books.spark.ch17.lab200_feed_delta.FeedDeltaLakeApp.start(
> FeedDeltaLakeApp.java:131)
> at net.jgp.books.spark.ch17.lab200_feed_delta.FeedDeltaLakeApp.main(
> FeedDeltaLakeApp.java:29)
> Caused by: java.lang.NoSuchMethodError:
> org/apache/spark/util/Utils$.classForName(Ljava/lang/String;)Ljava/lang/Class;
> (loaded from
> file:/Users/jgp/.m2/repository/org/apache/spark/spark-core_2.12/3.0.0-preview/spark-core_2.12-3.0.0-preview.jar
> by sun.misc.Launcher$AppClassLoader@7da46134) called from interface
> org.apache.spark.sql.delta.storage.LogStoreProvider (loaded from
> file:/Users/jgp/.m2/repository/io/delta/delta-core_2.12/0.5.0/delta-core_2.12-0.5.0.jar
> by sun.misc.Launcher$AppClassLoader@7da46134).
> at org.apache.spark.sql.delta.storage.LogStoreProvider.createLogStore(
> LogStore.scala:122)
> at org.apache.spark.sql.delta.storage.LogStoreProvider.createLogStore$(
> LogStore.scala:120)
> at org.apache.spark.sql.delta.DeltaLog.createLogStore(DeltaLog.scala:58)
> at org.apache.spark.sql.delta.storage.LogStoreProvider.createLogStore(
> LogStore.scala:117)
> at org.apache.spark.sql.delta.storage.LogStoreProvider.createLogStore$(
> LogStore.scala:115)
> at org.apache.spark.sql.delta.DeltaLog.createLogStore(DeltaLog.scala:58)
> at org.apache.spark.sql.delta.DeltaLog.<init>(DeltaLog.scala:79)
> at org.apache.spark.sql.delta.DeltaLog$$anon$3.$anonfun$call$2(
> DeltaLog.scala:744)
> at
> org.apache.spark.sql.delta.DeltaLog$$anon$3$$Lambda$2122.00000000CBBD5C20.apply(Unknown
> Source)
> at
> org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper$.allowInvokingTransformsInAnalyzer(
> AnalysisHelper.scala:194)
> at org.apache.spark.sql.delta.DeltaLog$$anon$3.$anonfun$call$1(
> DeltaLog.scala:744)
> at
> org.apache.spark.sql.delta.DeltaLog$$anon$3$$Lambda$2121.00000000CB4AA420.apply(Unknown
> Source)
> at com.databricks.spark.util.DatabricksLogging.recordOperation(
> DatabricksLogging.scala:77)
> at com.databricks.spark.util.DatabricksLogging.recordOperation$(
> DatabricksLogging.scala:67)
> at org.apache.spark.sql.delta.DeltaLog$.recordOperation(DeltaLog.scala:671
> )
> at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperation(
> DeltaLogging.scala:103)
> at org.apache.spark.sql.delta.metering.DeltaLogging.recordDeltaOperation$(
> DeltaLogging.scala:89)
> at org.apache.spark.sql.delta.DeltaLog$.recordDeltaOperation(
> DeltaLog.scala:671)
> at org.apache.spark.sql.delta.DeltaLog$$anon$3.call(DeltaLog.scala:743)
> at org.apache.spark.sql.delta.DeltaLog$$anon$3.call(DeltaLog.scala:740)
> at com.google.common.cache.LocalCache$LocalManualCache$1.load(
> LocalCache.java:4739)
> at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(
> LocalCache.java:3524)
> at com.google.common.cache.LocalCache$Segment.loadSync(
> LocalCache.java:2317)
> at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(
> LocalCache.java:2280)
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
> ... 30 more
>
> Any clue of something I am doing wrong?
>
> jg
>
>
>
>

Reply via email to