Parquet二进制数据类型

3
我有一个关于二进制数据类型的问题。我正在尝试为我的MR作业编写Parquet模式,以创建Parquet文件,而不是让Hive或Impala创建一个。我看到一些关于Binary类型的引用,但在Parquet中没有看到它。
二进制是否是BYTE_ARRAY的别名?
此外,UTF-8是否是二进制数据类型的默认编码?
2个回答

9

Parquet中的原始字节可以存储为固定长度的字节数组(FIXED_LEN_BYTE_ARRAY)或可变长度的字节数组(BYTE_ARRAY,也称为二进制)。当您具有大小恒定的值(例如SHA1哈希值)时,使用固定长度。大多数情况下,使用可变长度版本。

字符串被编码为可变长度二进制,并带有UTF8类型注释,以指示如何将原始字节解释回字符串。 UTF8是该格式支持的唯一编码,但并非所有二进制都使用UTF8,因为并非所有二进制字段都存储字符串数据。


1
在parquet-column中没有名为BYTE_ARRAY的数据类型。我看到了最新包中他们的PrimitiveType,但却看不到它。也无法以二进制方式写入byte[]。

提供一些更详细的描述或更多详情的链接。 - Mathews Sunny
1
最终,我可以以二进制类型/固定长度字节数组类型编写byte[],这是Parquet中原始类型支持的。请访问https://github.com/apache/parquet-format,不要将BYTE_ARRAY类型与之混淆。我认为他们的意思是FIXED_LEN类型,因为没有BYTE_ARRAY特定的类型。BYTE_ARRAY对应于Parquet中的二进制。 - Mayank Thirani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接