我需要将在 Databricks 中创建的数据帧加载到 Azure Synapse 中。现在,Microsoft 的示例需要为 Parquet 设置 Spark 配置,如下所示:
spark.conf.set(
"spark.sql.parquet.writeLegacyFormat",
"true")
为什么它需要是遗留格式(即 Spark 1.4 <)?它是强制性的吗?
*在 Databricks 中,默认值为 False。
上面的语句是每个会话的,所以它不会影响其他正在运行的作业,但是我想知道为什么我们需要使用遗留格式?
我们是否有替代方法,例如存储为 Parquet 文件(为 False),然后使用 Polybase 查询 ADLSg2?
我应该提前感谢您的反馈/建议。
如果为真,数据将以 Spark 1.4 及更早版本的方式写入。例如,十进制值将以 Apache Parquet 的固定长度字节数组格式写入,Apache Hive 和 Apache Impala 等其他系统使用该格式。如果为 false,将使用 Parquet 中较新的格式。例如,小数将以基于 int 的格式写入。如果 Parquet 输出旨在用于不支持这种较新格式的系统,请设置为 true。