0
假設一個數據集包含2場:場,質詢時間如何在豬身上執行這個逗號分隔列表?
fields question time
php,error,gd,image-processing 1235000501
php,error,gd,image-processing 1235000551
lisp,scheme,subjective,clojure 1235000177
lisp,scheme,subjective,clojure 1235001545
lisp,scheme,subjective,clojure 1235002457
lisp,scheme,subjective,clojure 1235002809
lisp,scheme,subjective,clojure 1235003266
lisp,scheme,subjective,clojure 1235007817
lisp,scheme,subjective,clojure 1235007913
lisp,scheme,subjective,clojure 1235020626
lisp,scheme,subjective,clojure 1235040652
我嘗試下面的代碼
DEFINE UnixToISO org.apache.pig.piggybank.evaluation.datetime.convert.UnixToISO();
A= LOAD '/user/home/book3.csv' using PigStorage() as (fields:chararray,question time:long);
B= foreach A generate fields,UnixToISO(question time * 1000) as temp;
DUMP B;
沒有變化與輸入相同
C= foreach B generate fields, ToDate(temp) as date_time;
DUMP C;
沒有變化與輸入相同
D= foreach C generate fields, GetHour(date_time) as hour;
DUMP D;
沒有改變相同的input.What是我的代碼錯誤?
感謝您的幫助..我有疑問時,我裝如上面我的問題提到的csv文件,我的代碼因此未工作。但是,當我保存爲文本(製表符分隔)並加載到HDFS,您的代碼工程..因此,我得到答案。爲什麼它是這樣的?你可以解釋分隔符的用法,因爲雖然我的代碼流是可以的,但是在加載部分時出錯。任何想法或預防措施,以避免這種情況..預先感謝。 – priyanka
我用tab作爲分隔符,因爲我用tabS替換了所有的空格。所以在使用PigStorage的load語句中,我使用了tab。即PigStorage('\ t'),如果文件是空格,那麼你會使用PigStorage('')。如果它是逗號,那麼PigStorage(',')。 –