Pyspark DataFrame.write на SQL Server не соблюдает .option("truncate","true") и перезаписывает существующую схему таблицPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pyspark DataFrame.write на SQL Server не соблюдает .option("truncate","true") и перезаписывает существующую схему таблиц

Сообщение Anonymous »

Я пытаюсь записать фрейм данных Spark в существующую таблицу SQL Server, чтобы он был усечен перед записью, оставив схему сохраненной (в частности, индексы, ограничения и типы столбцов). Насколько я понимаю, исходя из документации, использование .mode("overwrite") с .option("truncate","true") должно достичь этой цели.
Однако в моем коде таблица удаляется и воссоздается без индексов, ограничений и с другими типами данных (например, текст вместо nvarchar, а не нулевые столбцы, воссоздаваемые для разрешения нулевых значений). Как я могу написать это с учетом опции усечения?

Код: Выделить всё

df.write \
.format("jdbc") \
.mode("overwrite") \
.option("truncate","true") \
.option("driver", "net.sourceforge.jtds.jdbc.Driver") \
.option("url", url) \
.option("dbtable", "target_table") \
.option("user", USER) \
.option("password", PASS) \
.option("batchsize", 20000) \
.option("createTableColumnTypes","col1 int not null,"
"col2 varchar(50) not null,"
"col2 varchar(50) not null,"
"col3 date not null,") \
.save()
Я использую среду выполнения Dataproc Serverless Spark 2.2, которая использует Spark 3.5.1

Подробнее здесь: https://stackoverflow.com/questions/792 ... ncate-true
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»