我对二进制数据类型有疑问。我正在尝试为我的MR工作编写一个Parquet Schema,以创建Parquet文件,与让Hive或Impala创建一个相反。我看到一些对二进制类型的引用,但在Parquet中却看不到

二进制文件是BYTE_ARRAY的别名吗?

另外,UTF-8是二进制数据类型的默认编码吗?

最佳答案

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

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

10-06 14:46