Снежинка — ошибка при создании временного представления из кадра данных сноупаркаPython

Программы на Python
Ответить
Anonymous
 Снежинка — ошибка при создании временного представления из кадра данных сноупарка

Сообщение Anonymous »

Надеюсь, у вас все хорошо.
Я столкнулся со странной проблемой в Snowpark (Python) при создании временного представления из Dataframe.
Я искал в Интернете и пока У меня были попадания, правильного решения нет.
Проблема:
  • Я иметь список списков Python, содержащий дату, имя каталога, имя файла. Я создаю из него фрейм данных. Затем кадр данных используется для создания или замены временного представления.
  • Код выполняется на листе Python из Snowflake.
  • Я случайно получаю ошибку при создании представления.
    snowflake.snowpark.exceptions.SnowparkCreateViewException: (1203): Your dataframe may include DDL or DML operations. Creating a view from this DataFrame is currently not supported.
  • Ошибка возникает случайно. Но я думаю, что это происходит, когда количество записей увеличивается. Просто предположение, поскольку тот же процесс работает для меня, если я запускаю менее 200 записей, но с большим количеством записей он терпит неудачу. Возможно, это просто совпадение.
Опробованные подходы:
  • Удалена часть, в которой я создаю дополнительные столбцы.
  • Попыталась создать копию кадра данных с помощью df.select("*"), а затем использовала ее для создания представления.
  • Пытались кэшировать фрейм данных перед созданием просмотреть.
Фактический код:
# assume the list is being created in a different process.
cur_run_files_list.append((date, dir_name, file_name))
tst_vw_nm_fq = "DB_NAME.SCHEMA_NAME.TEST_VIEW"
# --------------------------------------------------------------------------------
df_cur_run_files_list = session.create_dataframe(
cur_run_files_list,
schema=["EXP_DATE", "DIR_NAME", "FILE_NAME"],
)
df_cur_run_files_list.create_or_replace_temp_view(tst_vw_nm_fq)


Тестовый код – согласно запросу:
Примечание. Этот код дает сбой только время от времени — значения жестко закодированы для тестирования...
# assume the list is being created in a different process.
# cur_run_files_list.append((date, dir_name, file_name))
cur_run_files_list = [
("2024-12-01", "dir_name01", "file_name01.txt"),
("2024-12-01", "dir_name02", "file_name02.txt"),
("2024-12-01", "dir_name03", "file_name03.txt"),
("2024-12-01", "dir_name04", "file_name04.txt"),
("2024-12-01", "dir_name05", "file_name05.txt"),
("2024-12-01", "dir_name06", "file_name06.txt"),
("2024-12-01", "dir_name07", "file_name07.txt"),
("2024-12-01", "dir_name08", "file_name08.txt"),
("2024-12-01", "dir_name09", "file_name09.txt"),
("2024-12-01", "dir_name10", "file_name10.txt"),
]
tst_vw_nm_fq = "DB_NAME.SCHEMA_NAME.TEST_VIEW"
# --------------------------------------------------------------------------------
df_cur_run_files_list = session.create_dataframe(
cur_run_files_list,
schema=["EXP_DATE", "DIR_NAME", "FILE_NAME"],
)
df_cur_run_files_list.create_or_replace_temp_view(tst_vw_nm_fq)
return df_cur_run_files_list # Added since snowpark needs a return value



Подробнее здесь: https://stackoverflow.com/questions/792 ... -dataframe
Ответить

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

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

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

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

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