Apache Spark 格式为(delta)的streamWriter未生成增量表

kd3sttzy  于 2023-01-17  发布在  Apache
关注(0)|答案(1)|浏览(143)

我在数据库中使用自动加载器。但是当我将流保存为增量表时,生成的表不是增量表。

.writeStream
  .format("delta")  # <-----------
  .option("checkpointLocation", checkpoint_path)
  .option("path", output_path)
  .trigger(availableNow=True)
  .toTable(table_name))
delta.DeltaTable.isDeltaTable(spark, table_name)
> false

为什么生成的表不是增量格式?如果我尝试使用spark.read(table_name)读取表,它可以工作,但如果我尝试使用Redash或内置数据库的数据选项卡,它会产生错误,架构无法很好地解析。
获取表时出错:table_name com.数据块.后端.公共. rpc.数据块异常$SQL执行异常:org.apache.spark.sql.AnalysisException:检测到不兼容的格式在s3://delta/_delta_log处找到了Databricks Delta的事务日志,但您正在尝试使用格式("parquet")从s3://delta读取。在读取和写入增量表时必须使用"format(" delta ")"。

sqxo8psd

sqxo8psd1#

你能试试这个吗:

(
     spark
    .writeStream                                                
    .option("checkpointLocation", <checkpointLocation_path>)
    .trigger(availableNow=True)
    .table("<table_name>")
)

你能试试table

相关问题