2013-03-06 84 views
0

此處爲新的Apache Pig用戶。我基本上有格式的數據,需要將其分成6列以創建我所需的模式,然後加載到Pig中以供我的現有腳本運行。如何解析Pig中的列以創建更多列

對不起,如果下面的格式不整潔,我不能上傳一張圖片,因爲信譽得分。

現有格式有3列
用戶設備值::鍵:字節組的值:值:字節組
USER1-移動20130306-AC 9
USER1-移動20130306-AT 21
USER2膝上型20130306-BC 0

格式要求:
用戶設備日期類型 「計數或時間」 值

USER1移動20130306 A C 9

user1的移動20130306的T 21

任何建議如何GE做?是否有我需要寫的正則表達式? 這裏的棘手的事情是所有的列有一個分隔符( - ),他們之間除了「類型」和列「C或T」

回答

0

如果你沒有一個常用的分隔符,我能想到的兩種可能性:

  1. 你可以實現自己的LoadFunc作爲解釋這裏:http://ofps.oreilly.com/titles/9781449302641/load_and_store_funcs.html

  2. 你可以使用REGEX_EXTRACT_ALL作爲解釋在這裏:Apache Pig: Extra query parameters from web log

在這裏,你去爲2:

A = LOAD 'abc.txt' AS (line:CHARARRAY); 
B = FOREACH A GENERATE FLATTEN(REGEX_EXTRACT_ALL(line, '^(.+?)\\-(.+?)\\s(.+?)\\-(.)(.)\\s(.+)$')) AS (User:CHARARRAY,Equipment:CHARARRAY,Date:CHARARRAY,Type:CHARARRAY,CountorTime:CHARARRAY,Value:CHARARRAY); 
+0

這工作。謝謝你們。 – user2045361 2013-03-08 17:46:32