Я использовал 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)