Aci*_*der 7 apache-spark parquet
我正在寻找有关如何在 Spark(最新 2.3.1)中使用parquet.enable.dictionary 的文档。创建 SparkSession 时可以将其设置为“true”或“false”。
我在谷歌上搜索了有关此功能的任何文档,但一无所获,或者至少最近什么也没找到。
具体来说,这些是我的问题:
Spark 2.3.1 中默认是 parquet.filter.dictionary.enabled = true 还是 = false?
这是在我写入 Parquet 文件之前启用(设置为 true)的功能,以便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
Run Code Online (Sandbox Code Playgroud)
以下默认设置为 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
Run Code Online (Sandbox Code Playgroud)
这些属性需要值并使用默认值列出它-
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
Run Code Online (Sandbox Code Playgroud)
关于 parquet.enable.dictionary,Spark 尚不支持。但它可以在 sqlContext 中设置为 -
sqlContext.setConf("parquet.enable.dictionary", "false")
Run Code Online (Sandbox Code Playgroud)
此属性的默认值在镶木地板中为 true。因此,从 Spark 调用 parquet 代码时应该是这样。
归档时间: |
|
查看次数: |
3895 次 |
最近记录: |