我用spark把一些数据直接写到parquet上,一个没有Hive,一个有Hive。这就是我在没有Hive的情况下直接写作的方式
cube_op.sort("asn").write.parquet("/home/hadoop/work/aaa/agg1")
我看到所有列都有minmax统计信息。但是,当我运行相同的程序并写入配置单元时,我看不到字符串列的minmax。下面是我如何使用Hive写作
cube_op.sort("asn").write.insertInto("tbl1")
这些是我给的属性
spark.sql("SET spark.sql.parquet.binaryAsString=true")
"parquet.strings.signed-min-max.enabled": "true"
我不确定造成这种差异的原因是什么。这是Hive版本。
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
这显然是 parquet 版本与Hive
creator: parquet-mr version 1.6.0 (build 6aa21f877662518059cfebe7f2e00cb)
暂无答案!
目前还没有任何答案,快来回答吧!