我知道这一定是一个愚蠢的问题,但经过几个小时的谷歌搜索,我无法得到答案。
以纯文本格式(例如 csv)很容易理解分隔符的工作原理。在 ORC 中,由于 is 是二进制存储在 HDFS 中,那么字段的分隔符是什么?有人告诉我,ORC 中没有分隔符,但我非常怀疑这个说法。
即使是作为行组存储,对于每个行组的一列,可以有多个数据字段,如何区分每个字段与下一个字段?每行如何与下一行分开?是否有分隔符来实现这一点?
感谢您的任何评论!
没有分隔符。它使用步幅/条纹,
文件的主体被分成条纹。每个条带都是自包含的,可以仅使用其自己的字节以及文件的页脚和后记来读取。每个条带仅包含整行,因此行永远不会跨越条带边界。条带包含三个部分:条带内行的一组索引、数据本身和条带页脚。索引和数据部分都按列划分,因此只需要读取所需列的数据。
参考:兽人