От Databricks к Azure Synapse Analytics: когда мы загружаем фрейм данных в таблицу, почему нам нужно установить parquet.writeLegacyFormat как True? - PullRequest
0 голосов
/ 09 июля 2020

Мне нужно загрузить фреймы данных, созданные в Databricks, в Azure Synapse. Теперь пример Microsoft требует настройки конфигурации Spark для Parquet, как показано ниже:

spark.conf.set(
"spark.sql.parquet.writeLegacyFormat",
"true")

Почему это должен быть устаревший формат (например, Spark 1.4 <)? Это обязательно? </p>

* В Databricks значение по умолчанию - False.

  • Приведенный выше оператор относится к сеансу, поэтому он не влияет на другие выполняемые задания, но мне интересно, почему нам нужно использовать устаревший формат?

  • Будет ли у нас альтернативный способ, такой как сохранение в виде файла Parquet (как False), а затем использование Polybase для запроса ADLSg2?

Буду признателен за ваши отзывы / советы заранее.

<<a href="http://spark.apache.org/docs/latest/configuration.html#runtime-environment" rel="nofollow noreferrer"> из Spark 3.0.0 >

Если это правда, данные будут записаны в способ Spark 1.4 и ранее. Например, десятичные значения будут записаны в формате массива байтов фиксированной длины Apache Parquet, который используют другие системы, такие как Apache Hive и Apache Impala. Если false, будет использоваться более новый формат Parquet. Например, десятичные дроби будут записаны в формате на основе int. Если вывод Parquet предназначен для использования с системами, которые не поддерживают этот новый формат, установите значение true.

1 Ответ

0 голосов
/ 23 июля 2020

К Parquet прикреплена устаревшая модель. ADF и Synapse поддерживают устаревший формат Parquet согласно https://docs.microsoft.com/en-us/azure/data-factory/supported-file-formats-and-compression-codecs-legacy для обратной совместимости.

Спасибо

Himanshu

...