Запись данных / данных Spark в SQL DW отбрасывает таблицу и создает ее заново. - PullRequest
0 голосов
/ 08 марта 2019

В 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?

1 Ответ

2 голосов
/ 08 марта 2019

Вы установили режим на overwrite - удаление и воссоздание соответствующей таблицы - мой опыт. Может быть, попробовать append вместо?

...