我正在尝试将 Pig BigDecimal 转换为 Hive Decimal 类型,但值被设置为 null。这是示例代码:
猪脚本:
a = LOAD 'test.txt' using TextLoader() as (col1:chararray,col2:int,col3:chararray,col4:int);
b = foreach a generate *,1 as rec_cnt;
c = group b by col1,col3;
d = foreach c generate flatten(group),(bigdecimal) SUM(rec_cnt) as grp_code;
STORE d into 'user/test' Using PigStorage(',');
STORE d into 'default.test' using org.apache.hive.hcatalog.pig.HCatStorer();
在上面的代码中,记录计数的总和值正确地出现在存储为“用户/测试”的 HDFS 文件中。但是使用 HcatStorer,所有记录的相同字段都填充为 NULL。使用此列定义 DECIMAL(16,0) 创建测试表。我正在使用 Hive 1.1.0。请建议如何解决此问题。