我的Hive表有多个小的orc文件。每个文件的大小小于HDFS块大小。这是一个很大的浪费。我使用跟随Spark代码来合并小文件,但合并文件的总大小几乎是原始小文件的3倍。
JavaSparkContext sc = startContext("test");
HiveContext hc = new HiveContext(sc);
DataFrame df = hc.read().format("orc").load(inputPath);
logger.info("source schema:");
logger.info(df.schema().treeString());
DataFrame df2 = df.repartition(partitionNum);
logger.info("target schema:");
logger.info(df2.schema().treeString());
df2.write().mode("append").orc(outputPath);
closeContext(sc);
有人遇到同样的问题吗?感谢