Я делаю кое-какое ПО C, чтобы загрузить таблицу Snowflake из кадра данных в Databricks. Я успешно загрузил таблицу, однако она меняет ее структуру.
Например, в Snowflake я создал эту таблицу:
CREATE OR REPLACE TABLE FNT_DAYS
(
FNT_DT_PK TIMESTAMP_NTZ NOT NULL,
OPEN_DT_FLG VARCHAR(1),
HOLIDAY_DT_FLG VARCHAR(1),
LOAD_USR VARCHAR(10)
);
ALTER TABLE FNT_DAYS ADD CONSTRAINT FNT_DAYS_PK PRIMARY KEY (FNT_DT_PK);
При запуске моего кода в Databricks unsing Python, таблица успешно загружена, однако структура таблицы изменяется следующим образом:
CREATE OR REPLACE TABLE FNT_DAYS
(
FNT_DT_PK TIMESTAMP_NTZ,
OPEN_DT_FLG VARCHAR(16777216),
HOLIDAY_DT_FLG VARCHAR(16777216),
LOAD_USR VARCHAR(10)
);
Обратите внимание, что ограничение первичного ключа исчезло, поле FNT_DT_PK больше не равно NOT NULL и, наконец, каждое отдельное поле VARCHAR длина типа данных изменена на 16777216.
Мой python код в Databricks очень прост:
%python
options = dict(sfUrl="mysnflk.snowflakecomputing.com",
sfUser="me",
sfPassword="******",
sfDatabase="SNF_DB",
sfSchema="PUBLIC",
sfWarehouse="SNF_WH")
df = spark.sql("select * from exc.test")
df.write \
.format("snowflake") \
.mode("overwrite") \
.options(**options) \
.option("dbtable", "FNT_DAYS") \
.save()
У вас есть представление о том, почему структура таблицы изменяется в Snowflake?