apache-spark - 写入 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 对应的数据,应该引发一些异常?
解决方案
您已将模式设置为overwrite
— 删除并重新创建有问题的表也是我在那里的经验。也许尝试一下append
?
推荐阅读
- titanium - 使用 node-gyp 的 Titanium 应用程序编译错误
- abap - 在 AT SELECTION-SCREEN 中设置依赖列表框的值
- python - instagram basic display api Exchange Code for Token 返回 400 OAuthException Invalid platform app
- angular - Angular中数据的异步操作
- javascript - 使用接口会导致重复但使用抽象类会导致无关属性
- python - 跟踪链接时出现 Scrapy 错误:AttributeError:“HtmlResponse”对象没有属性“follow_all”
- python - Python中的两个主体内重复测量方差分析
- python - IF 和 ELIF 函数和 FOR 函数
- python - 按最大值百分比生成的随机数
- django - ModelForm 不保存任何数据