首页 > 解决方案 > 从 Databricks 到 Azure Synapse Analytics:当我们将数据帧加载到表中时,为什么需要将 parquet.writeLegacyFormat 设置为 True?

问题描述

我需要将在 Databricks 中创建的数据帧加载到 Azure Synapse 中。现在,Microsoft 的示例需要为 Parquet 设置 Spark 配置,如下所示:

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

为什么它需要是遗留格式(即 Spark 1.4 <)?它是强制性的吗?

*在 Databricks 中,默认值为 False。

我应该提前感谢您的反馈/建议。

<来自 Spark 3.0.0 >

如果为真,数据将以 Spark 1.4 及更早版本的方式写入。例如,十进制值将以 Apache Parquet 的固定长度字节数组格式写入,Apache Hive 和 Apache Impala 等其他系统使用该格式。如果为 false,将使用 Parquet 中较新的格式。例如,小数将以基于 int 的格式写入。如果 Parquet 输出旨在用于不支持这种较新格式的系统,请设置为 true。

标签: apache-sparkazure-databrickspolybaseazure-synapse

解决方案


Parquet 附加了旧模型。ADF 和 Synapse 根据https://docs.microsoft.com/en-us/azure/data-factory/supported-file-formats-and-compression-codecs-legacy支持旧 Parquet 格式,以实现向后兼容性。

谢谢

喜满洲


推荐阅读