2015-06-08 55 views
1

在豬腳本中,我想找到一種方法來轉義我的數據中的分隔符,這樣它就不會被解釋爲額外的列。例如,如果我使用冒號作爲分隔符,並且我有一個值爲「foo:bar」的列,我希望該字符串解釋爲單個列,而不需要加載器在中間拾取逗號。如何擺脫價值中發現的分隔符 - 豬腳本?

回答

0

您可以嘗試http://pig.apache.org/docs/r0.12.0/func.html#regex-extract-all

​​

正則表達式可能需要進行調整。

+0

感謝Fred,但我的輸入是關鍵和值的文本文件。 –

+0

你能張貼幾行你的輸入作爲例子嗎? – Frederic

+0

聯繫人姓名:dusre:rage是文本,我需要dusre:rage作爲關鍵聯繫人姓名的值,但截至目前它只給出dusre作爲值。 –

0

看起來,Pig把Input作爲字符串,它不那麼聰明以便確定數據是什麼或不是什麼。

豬存儲在強Tokenizer上工作。所以,如果ü要像做

a = LOAD '/abc/def/file.txt' USING PigStorage(':');

它不會似乎是解決你的問題。但是如果我們可以編寫我們自己的PigStorage()方法,我們可能會遇到一些解決方案。

我會嘗試發佈代碼來解決這個問題。

0

你可以使用STRSPLIT(string,regex,limit);用於基於分隔符的列拆分。