0
我想將Pig BigDecimal轉換爲Hive十進制類型,但值被gettined null。下面是示例代碼:Pig BigDecimal to Hive十進制
豬腳本:
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。請建議如何解決這個問題。
任何消息?你看過其他類似的問題嗎? –
爲什麼你在一個DOUBLE中存儲一個整數「1」?爲什麼計數記錄(例如,將這些1加起來)寫入BIGDECIMAL?使用LONG或BIGINTEGER會更有意義... –
最終結果需要用十進制表示,因爲下游需要十進制格式。將整型「1」轉換爲DOUBLE不是必需的,我只是嘗試了不同的選項來存儲十進制格式的最終總和,但無論以何種方式將它總結在配置單元表中,它都被存儲爲NULL。更新了代碼以刪除重複投射。 – HarishKotha