我们使用的是 Spark 1.6 (Cloudera 5.8.2)。我们使用以下命令生成 ORC 输出。
dataframe.write().format("orc").save("spark_orc_output");
在其中一个输出文件上,我们运行了 hive --orcfiledump 。它显示该输出文件中有 196 个条带。每个条带的数据大小在 19KB-19MB 之间变化。
根据我们的理解,条带大小由某些属性(orc.stripe.size、hive.exec.orc.default.stripe.size)驱动,该属性在应用程序中是一个常量。所以,
为什么我们会看到数据大小的这种变化?
Spark ORC 中的默认条带大小是多少?