在Hadoop第137页:权威指南第4版中,它讨论了面向列的格式文件,并在下面显示了图片。
在RCFile中,为什么数字的顺序是1,4,2,5,3,6,7,10,8,11,9,12
而不是1,4,7,10,2,5,8,11,3,6,9,12
?
最佳答案
首先, RC不是列式文件,它是记录列式文件。
RC和ORC都是可拆分的。这意味着您不必读取所有文件就只能得到很少的行,并且可以被许多容器并行读取。这就是为什么我们需要拆分。
拆分包含的行被分组在一起,并且可以彼此独立地读取,同时列也分组在拆分中。相似的数据可以更好地压缩,因此,如果将列分组在一起,则可以提高压缩率。在您的示例中,一个拆分仅包含两行,但它可以包含10000或更多行。
官方documentation对RC文件说的是:
在同一节点上。
跳过不必要的列读取。
另请参阅ORC。使用ORC中的索引,可以轻松地在最低级别过滤 strip 。此功能称为谓词下推。