Достигнут некоторый прогресс в проверке концепции модели dbt Python в GCP (BigQuery). Создал кластер обработки данных для Spark и могу выполнить модель, но в модели появляется ошибка, требующая изменения конфигурации для Spark. В частности, мне нужно установить следующее:
"spark.sql.legacy.parquet.int96RebaseModeInRead": "ИСПРАВЛЕНО" "spark.sql.legacy.parquet.int96RebaseModeInWrite": "ИСПРАВЛЕНО" "spark.sql.legacy.parquet.datetimeRebaseModeInRead": "ИСПРАВЛЕНО" "spark.sql.legacy.parquet.datetimeRebaseModeInWrite": "ИСПРАВЛЕНО"
Я не уверен, где и как установить эти параметры конфигурации искры. Это в файле Profiles.yml или я могу сделать это программно в самой модели Python... или где-то еще?
Попробовал установить в файле Profiles.yml следующее:
аналитический_профиль: выходы: разработчик: server_side_parameters: "spark.sql.legacy.parquet.int96RebaseModeInRead": "ИСПРАВЛЕНО" "spark.sql.legacy.parquet.int96RebaseModeInWrite": "ИСПРАВЛЕНО" "spark.sql.legacy.parquet.datetimeRebaseModeInRead": "ИСПРАВЛЕНО" "spark.sql.legacy.parquet.datetimeRebaseModeInWrite": "ИСПРАВЛЕНО"
При запуске моей модели dbt на Python я получаю следующую ошибку: Вы можете получить другой результат из-за обновления Spark 3.0: запись дат до 1582-10-15 или меток времени до 1900-01-01T00:00:00Z в Parquet файлы могут быть опасными, так как файлы могут быть прочитаны Spark 2.x или более поздними версиями Hive, которые используют устаревший гибридный календарь, отличный от пролептического григорианского календаря Spark 3.0+. Более подробную информацию см. в SPARK-31404. При поиске исправлений мне нужно установить параметры искры, указанные выше, но я не знаю, где и как установить эти настройки искры.
При поиске исправлений мне нужно установить параметры искры, указанные выше, но я не знаю, где и как установить эти настройки искры.






Это должно было быть очевидно, но я не связал воедино тот факт, что конфигурация Spark была частью объекта сеанса, который передается в функцию модели. Это исправило ошибку, которую я получал:
session.conf.set("spark.sql.legacy.parquet.datetimeRebaseModeInWrite", "CORRECTED")
session.conf.set("spark.sql.legacy.parquet.int96RebaseModeInWrite", "CORRECTED")
session.conf.set("spark.sql.legacy.parquet.datetimeRebaseModeInRead", "CORRECTED")
session.conf.set("spark.sql.legacy.parquet.datetimeRebaseModeInWrite", "CORRECTED")
Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительную информацию, чтобы выделить именно то, что вам нужно. Поскольку сейчас написано, трудно точно сказать, о чем вы спрашиваете.