Rap*_*009 5 apache-spark delta-lake
SPARK 3.0 无法将 DF 保存为 HDFS 中的增量表
能够在 2.4.4 中做到这一点,但没有创建分区。
输入样本:
Vehicle_id|model|brand|year|miles|intake_date_time
v0001H|verna|Hyundai|2011|5000|2018-01-20 06:30:00
v0001F|Eco-sport|Ford|2013|4000|2018-02-10 06:30:00
v0002F|Endeavour|Ford|2011|8000|2018-04-12 06:30:00
v0001L|Gallardo|Lambhorghini|2013|2000|2018-05-16 06:30:00
Run Code Online (Sandbox Code Playgroud)
// reading
val deltaTableInput1 = spark.read
.format("com.databricks.spark.csv")
.option("header","true")
.option("delimiter","|")
.option("inferSchema","true")
.load("file")
.selectExpr("Vehicle_id","model","brand","year","month","miles","CAST(concat(substring(intake_date_time,7,4),concat(substring(intake_date_time,3,4),concat(substring(intake_date_time,1,2),substring(intake_date_time,11,9)))) AS TIMESTAMP) as intake_date_time")
// Writing
deltaTableInput1.write
.mode("overwrite")
.partitionBy("brand","model","year","month")
.format("delta")
.save("path")
Run Code Online (Sandbox Code Playgroud)
错误:
com.google.common.util.concurrent.ExecutionError: java.lang.NoSuchMethodError: org.apache.spark.util.Utils$.classForName(Ljava/lang/String;)Ljava/lang/Class; 在 com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2261) 在 com.google.common.cache.LocalCache.get(LocalCache.java:4000) 在 com.google.common.cache.LocalCache $LocalManualCache.get(LocalCache.java:4789) at org.apache.spark.sql.delta.DeltaLog$.apply(DeltaLog.scala:714) at org.apache.spark.sql.delta.DeltaLog$.forTable(DeltaLog) .scala:676) 在 org.apache.spark.sql.delta.sources.DeltaDataSource.createRelation(DeltaDataSource.scala:124) 在 org.apache.spark.sql.execution.datasources.SaveIntoDataSourceCommand.run(SaveIntoDataSourceCommand.scala:46) ) 在 org.apache.spark.sql.execution.command.ExecutedCommandExec。NoSuchMethodError: org.apache.spark.util.Utils$.classForName(Ljava/lang/String;)Ljava/lang/Class; 在 org.apache.spark.sql.delta.storage.LogStoreProvider.createLogStore(LogStore.scala:122) 在 org.apache.spark.sql.delta.storage.LogStoreProvider.createLogStore$(LogStore.scala:120) 在 org。 apache.spark.sql.delta.DeltaLog.createLogStore(DeltaLog.scala:58) 在 org.apache.spark.sql.delta.storage.LogStoreProvider.createLogStore(LogStore.scala:117) 在 org.apache.spark.sql。 delta.storage.LogStoreProvider.createLogStore$(LogStore.scala:115) 在 org.apache.spark.sql.delta.DeltaLog.createLogStore(DeltaLog.scala:58) 在 org.apache.spark.sql.delta.DeltaLog.( DeltaLog.scala:79) 在 org.apache.spark.sql.delta.DeltaLog$$anon$3.$anonfun$call$2(DeltaLog.scala:718) 在 org.apache.spark.sql。
在来自 REPL 的 Spark 2.4.4 中,它是在没有分区的情况下写入的。
Spark 3.0 错误
在松弛上发现:
Spark 3.0 与 Spark 2.4 有显着不同,因此它不起作用
不过有分店吗?https://github.com/delta-io/delta/tree/spark-3.0-snapshot