3

我有一个关于二进制数据类型的问题。我正在尝试为我的 MR 作业编写 Parquet Schema 来创建 Parquet 文件,而不是让 Hive 或 Impala 创建一个。我看到了一些在Parquet中看不到的对 Binary 类型的引用

二进制是 BYTE_ARRAY 的别名吗?

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

4

2 回答 2

7

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

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

于 2015-05-22T00:14:35.690 回答
1

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

于 2018-07-27T18:08:13.090 回答