Parquet 的配置可以使用 SparkSession 的 setConf 来设置或者通过使用 SQL 运行 SET key=value 命令。
属性名 | 默认值 | 含义 |
spark.sql.parquet.binaryAsString | false | 其他的一些产生 Parquet 的系统,特别是 Impala 和 SparkSQL 的老版本,当将 Parquet 模式写出时不会区分二进制数据和字符串。这个标志告诉 Spark SQL 将二进制数据解析成字符串,以提供对这些系统的兼容。 |
spark.sql.parquet.int96AsTimestamp | true | 其他的一些产生 Parquet 的系统,特别是 Impala ,将时间戳存储为 INT96 的形式。Spark 也将时间戳存储为 INT96,因为我们要避免纳秒级字段的精度的损失。这个标志告诉 Spark SQL 将 INT96 数据解析为一个时间戳,以提供对这些系统的兼容。 |
spark.sql.parquet.cacheMetadata | true | 打开 Parquet模式的元数据的缓存。能够加快对静态数据的查询。 |
spark.sql.parquet.compression.codec | snappy | 设置压缩编码解码器,当写入一个 Parquet文件时。可接收的值包括 : uncompressed,snappy,gzip,lzo。 |
spark.sql.parquet.filterPushdown | false | 打开 Parquet 过滤器的后进先出存储的优化。这个功能默认是被关闭的,因为一个 Parquet 中的一个已知的 bug 1.6.0rc3 (PARQUET-136)。然而,如果你的表中不包含任何的可为空的(nullable)字符串或者二进制列,那么打开这个功能是安全的。 |
spark.sql.hive.convertMetastoreParquet | true | 当设置成 false,Spark SQL 会为 parquet 表使用 Hive SerDe(Serialize/Deserilize)。 |
spark.sql.parquet.mergeSchema | false | 当设置 true 时,Parquet 数据源从所有的数据文件中合并 schemas,否则 schema 来自 summary file 或随机的数据文件当 summary file不可得时。 |