我在扁平豬的字符串後實現字段對象(模式)時出現問題。我有以下代碼:扁平化字符串後豬的模式
Data = load'data/*。txt'using PigStorage()AS(....,date:chararray,.....);
B =的foreach數據FLATTEN(REGEX_EXTRACT_ALL(日期, ' 「()/()/(*)
():():。。。(*)」' ))AS(month:int,day:int,year:int,hour:int,min:int,second:int);
--B =過濾器B年份== 2015;
--B =按月份過濾器B == 1 OR月份== 2; C = foreach B生成速度,月,日,年,小時,分鐘;
使用PigStorage(',')將C存儲到'data/out_files'中;
凡日期的格式爲(「2015年2月23日23時56分49秒」)
這工作完全正常。但是當我在B(年份== 2015或月== 1或月份== 2)中使用過濾器時,此代碼不起作用。你有一個很好的主意,如何使用任何領域平坦的字符串?感謝您的幫助。
謝謝Sivasakthi,仍然出現錯誤,無法將bytearray轉換爲int。這是由於C = FILTER B BY year == 2015。當我將年份更改爲int時,仍然得到以前的錯誤。 – Aarav 2015-02-10 21:58:49
默認情況下,pig會將bytearray轉換爲int,作爲隱式類型轉換的一部分,所以這應該起作用。我沒有在上面的腳本中遇到任何問題,並且你提到的過濾語句對我來說都很好。你可以關閉你的終端,再次打開它並重新運行腳本? (我使用Pig 0.13版本。) – 2015-02-11 02:12:35