вернуть список столбцов, который превышает ограничение длины символа - pyspark / Snowke - PullRequest
0 голосов
/ 28 апреля 2020

У меня возникла проблема, когда я не могу вернуть список всех столбцов, длина которых превышает длину символа, при записи кадра данных в таблицу в виде снежинки с помощью pyspark.

как я могу вернуть список столбцы за раз вместо обновления каждого столбца, повторно запустите команду и затем столкнитесь с той же проблемой для другого столбца и повторяйте процесс до тех пор, пока не будет исправлена ​​длина всех столбцов.

(df.write \
    .format(SNOWFLAKE_SOURCE_NAME) 
    .options(**sfWriteOptions) 
    .option("schema",schemaname) 
    .option("dbtable",targettable) 
    .mode('overwrite') 
    .save())

net.snowflake.client.jdbc.SnowflakeSQLException: User character length limit (30) exceeded by string

спасибо!

1 Ответ

1 голос
/ 28 апреля 2020

Снежинка довольно уникальна тем, что у вас нет преимуществ в определении длины строки (или даже целых чисел) в вашей таблице. Здесь нет места или преимуществ для производительности. Таким образом, одной мыслью было бы переопределить ваши таблицы, чтобы у них не была определена длина. Если это невозможно, возможно, создайте временную таблицу без длин, загрузите ее из таблицы spark и затем оцените длины полей перед вставкой в ​​финальную таблицу.

Я не знаю больше Dynami c способ сделать это перед загрузкой данных в Snowflake.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...