apache-spark - Parquet 文件在使用 Hive 时没有来自 String 列的统计信息
问题描述
我使用 Spark 将一些数据直接写入 Parquet,一个没有 Hive,一个有 Hive。这就是我在没有 Hive 的情况下直接编写的方式
cube_op.sort("asn").write.parquet("/home/hadoop/work/aaa/agg1")
我看到所有列都存在最小最大统计信息。但是,当我运行相同并写入 Hive 时,我看不到字符串列的 min max。这是我使用 Hive 编写的方式
cube_op.sort("asn").write.insertInto("tbl1")
这些是我给出的属性
spark.sql("SET spark.sql.parquet.binaryAsString=true")
"parquet.strings.signed-min-max.enabled": "true"
我不确定造成这种差异的原因是什么。这是蜂巢版本。
hive --version
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/ais/cloudera/parcels/CDH-5.16.2-1.cdh5.16.2.p0.8/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
...
Hive 1.1.0-cdh5.16.2
这显然是 Hive 的镶木地板版本
creator: parquet-mr version 1.6.0 (build 6aa21f877662518059cfebe7f2e00cb)
解决方案
推荐阅读
- wpf - 将关闭窗口子句添加到 WPF 对话框
- node.js - Bash 语法问题,'语法错误:意外的“do”(期待“fi”)'
- python - 我被困在这个练习中无法确定真/假部分
- reactjs - 将站点管理到特定文件夹,无需服务器端和编辑链接
- c# - 如何让控制台等待但不按键继续?
- shell - FFMPEG,.txt 文件中的倒数第二张图像未显示在视频中
- python - 由于 OSCP 证书检查,雪花连接器超时
- mysql - mysql删除受组限制的行
- sql-server - 在子查询中使用临时表而不是 group by 背后的逻辑
- wso2 - 无法访问 Siddhi.io 以检查源类型