首页 > 解决方案 > 写入 SQL DW 的 Databricks/Spark 数据正在删除表并重新创建它

问题描述

在 Azure SQL DW 中,我有一个空表(比如表 T1)。

假设 T1 有 4 列 C1、C2、C3 和 C4(C4 不为空)我在 Databricks 中有一个数据框(比如 df1),其中包含 C1、C2 和 C3 的数据

我正在使用如下代码片段对数据帧执行写操作

df1.write
     .format("com.databricks.spark.sqldw")
     .option("url", jdbcURL)
     .option("dbtable", "T1")
     .option( "forward_spark_azure_storage_credentials","True")
     .option("tempDir", tempDir)
     .mode("overwrite")
     .save()

我在那里看到的是,表 T1 没有得到任何错误,而是丢失了,新表 T1 只创建了 3 列 C1、C2 和 C3。这是预期的行为,还是理想情况下尝试插入数据时,由于缺少与 C4 对应的数据,应该引发一些异常?

标签: apache-sparkapache-spark-sqldatabricksazure-sqldwazure-databricks

解决方案


您已将模式设置为overwrite— 删除并重新创建有问题的表也是我在那里的经验。也许尝试一下append


推荐阅读