我有一个关于二进制数据类型的问题。我正在尝试为我的mr作业编写一个parquet模式来创建parquet文件,而不是让hive或impala创建一个。我看到一些对二进制类型的引用,但在parquet中没有看到二进制是字节数组的别名吗?utf-8也是二进制数据类型的默认编码吗?
cwtwac6a1#
原始字节以固定长度字节数组(fixed\ len\ u byte\ u array)或可变长度字节数组(byte\ u array,也称为二进制)的形式存储在parquet中。当值的大小保持不变时,使用fixed,比如sha1散列值。大多数情况下,使用可变长度版本。字符串被编码为具有utf8类型注解的可变长度二进制,以指示如何将原始字节解释回字符串。utf8是该格式中唯一支持的编码,但并不是每个二进制文件都使用utf8,因为并非所有二进制字段都存储字符串数据。
huwehgph2#
parquet列中没有名为byte\ u array的数据类型。我在最新的包中看到了它们的原语类型,但看不到它。也无法将字节[]写入二进制。
2条答案
按热度按时间cwtwac6a1#
原始字节以固定长度字节数组(fixed\ len\ u byte\ u array)或可变长度字节数组(byte\ u array,也称为二进制)的形式存储在parquet中。当值的大小保持不变时,使用fixed,比如sha1散列值。大多数情况下,使用可变长度版本。
字符串被编码为具有utf8类型注解的可变长度二进制,以指示如何将原始字节解释回字符串。utf8是该格式中唯一支持的编码,但并不是每个二进制文件都使用utf8,因为并非所有二进制字段都存储字符串数据。
huwehgph2#
parquet列中没有名为byte\ u array的数据类型。我在最新的包中看到了它们的原语类型,但看不到它。也无法将字节[]写入二进制。