从databricks到azure synapse analytics:当我们将Dataframe加载到表中时,为什么需要将parquet.writelegacyformat设置为true?

4ktjp1zp  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(451)

我需要将databricks中创建的Dataframe加载到azuresynapse中。现在,微软的例子要求为Parquet地板设置spark配置,如下所示:

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

为什么需要传统格式(即spark 1.4<)?是强制性的吗?

  • 在databricks中,默认值为false。

上面的语句是每个会话的,所以它不会影响其他正在运行的作业,但我想知道为什么我们需要使用遗留格式?
我们是否有其他方法,比如存储为parquet文件(false),然后使用polybase查询adlsg2?
我应该感谢您的反馈/建议提前。
<来自spark 3.0.0>
如果为真,数据将以spark 1.4及更早版本的方式写入。例如,十进制值将以apacheparquet的固定长度字节数组格式写入,其他系统如apachehive和apacheimpala使用这种格式。如果为false,将使用Parquet地板中较新的格式。例如,小数将以基于int的格式写入。如果Parquet输出用于不支持此较新格式的系统,请设置为true。

u59ebvdq

u59ebvdq1#

有一个遗留模型附加到Parquet地板。adf&synapse支持传统Parquet格式https://docs.microsoft.com/en-us/azure/data-factory/supported-file-formats-and-compression-codecs-legacy 向后兼容。
谢谢
希曼舒

相关问题