gpt4 book ai didi

apache-spark - Spark 2.3+ 使用 parquet.enable.dictionary?

转载 作者:行者123 更新时间:2023-12-04 19:27:12 30 4
gpt4 key购买 nike

我正在寻找有关如何在 Spark(最新 2.3.1)中使用 parquet.enable.dictionary 的文档。创建 SparkSession 时可以将其设置为“true”或“false”。

我在谷歌上搜索了有关此功能的任何文档,但一无所获,或者至少最近什么也没找到。

具体来说,这些是我的问题:

Spark 2.3.1 中默认是 parquet.filter.dictionary.enabled = true 还是 = false?

这是在 之前启用(设置为 true) 我写入 Parquet 文件以便 Spark 的 Parquet 库计算并将字典信息写入磁盘的功能吗?

Spark 读取 Parquet 文件时是否忽略此设置,或者我是否仍需要将其设置为 true 以读取 Parquet(以及写入)?

我应该什么时候使用这个功能(设置为 true)?优点缺点?

当我在 google 上搜索 parquet.enable.dictionary 时,我也看到了对这个 spark.hadoop.parquet.enable.dictionary 的引用。这有关系吗?我应该使用哪个?

是否还有其他 Spark + Parquet 设置需要注意?

非常感谢!

最佳答案

这些是默认设置为 false 的 spark parquet 配置 -

spark.sql.parquet.mergeSchema
spark.sql.parquet.respectSummaryFiles
spark.sql.parquet.binaryAsString
spark.sql.parquet.int96TimestampConversion
spark.sql.parquet.int64AsTimestampMillis
spark.sql.parquet.writeLegacyFormat
spark.sql.parquet.recordLevelFilter.enabled

以下默认设置为 true -
spark.sql.parquet.int96AsTimestamp
spark.sql.parquet.filterPushdown
spark.sql.parquet.filterPushdown.date
spark.sql.parquet.filterPushdown.timestamp
spark.sql.parquet.filterPushdown.decimal
spark.sql.parquet.filterPushdown.string.startsWith
spark.sql.parquet.enableVectorizedReader

这些属性需要值并使用默认值列出它-
spark.sql.parquet.outputTimestampType = INT96
spark.sql.parquet.compression.codec = snappy
spark.sql.parquet.pushdown.inFilterThreshold = 10
spark.sql.parquet.output.committer.class = org.apache.parquet.hadoop.ParquetOutputCommitter
spark.sql.parquet.columnarReaderBatchSize = 4096

关于 parquet.enable.dictionary,Spark 尚不支持。但它可以在 sqlContext 中设置为 -
sqlContext.setConf("parquet.enable.dictionary", "false")

此属性的默认值在 Parquet 中为 true。因此,从 Spark 调用 parquet 代码时应该是这样。

关于apache-spark - Spark 2.3+ 使用 parquet.enable.dictionary?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52325649/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com