我正在尝试使用TDCH将十进制数据从Teradata导入到Hive Parquet格式,但是它给出了类型转换错误。不知道为什么它试图将十进制转换为字符串。我在两侧使用Decimal数据类型,即Hive和Teradata。同样的事情也发生在Timestamp字段中。这种情况发生在Hive中的Parquet格式表中,类似的事情对于RCfile格式工作正常。有什么帮助吗?
答案 0 :(得分:0)
根据Parquet Documentation,Parquet中没有Decimal或Timestamp数据类型,这必须是映射到String的原因。
文件格式支持的类型应尽可能少,重点关注类型对磁盘存储的影响。例如,存储格式中不明确支持16位整数,因为它们由具有高效编码的32位整数覆盖。这降低了实现格式的读者和编写者的复杂性。类型包括: - BOOLEAN:1位布尔 - INT32:32位有符号整数 - INT64:64位有符号整数 - INT96:96位有符号整数 - FLOAT:IEEE 32位浮点值 - DOUBLE:IEEE 64位浮点values - BYTE_ARRAY:任意长字节数组。
Hive列定义中的数据类型和HDFS中的数据类型表示不是一回事。如果您需要数据的确切数据类型,则应尝试其他格式。