我需要将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。
1条答案
按热度按时间u59ebvdq1#
有一个遗留模型附加到Parquet地板。adf&synapse支持传统Parquet格式https://docs.microsoft.com/en-us/azure/data-factory/supported-file-formats-and-compression-codecs-legacy 向后兼容。
谢谢
希曼舒