2013-10-10 42 views
0

我有一些pig輸出文件,並希望在另一臺機器上讀取它們(沒有hadoop安裝)。我只想讀取一個製表符分隔的純文本行並將其解析爲一個java對象。我猜測我們應該能夠使用pig.jar作爲依賴關係並且能夠讀取它。我找不到相關的文檔。我認爲this類可以使用?我們怎樣才能提供模式。如何在單獨的Java程序中讀取pig輸出

回答

0

你的豬輸出文件只是文本文件,對吧?那麼你不需要任何豬或胡桃罐。 我上次與Pig一起工作的時間是在亞馬遜的EMR平臺上,輸出文件被藏在s3桶中。它們只是文本文件,標準java可以讀取文件。

您引用的那個類是用於從某些文本格式讀入豬的。

你是否要求一個庫來將豬數據模型解析爲java對象?即文件表示的元組&包等等?如果是這樣,那麼它可能更容易編寫它自己。這是一個非常簡單的數據模型,只有3種數據類型。

+0

我的文件還包含行李和地圖,我必須爲此編寫解析器嗎?例如,這種模式很難解析:A = LOAD'mydata'AS(T1:元組(f1:int,f2:int),B:包{T2:元組(t1:float,t2:float)},M :map []); 我猜豬庫是將它們解析成一個java對象吧? – Arun

+0

我不確定您是否可以重複使用Hadoop外部的Pig api。抱歉。我剛剛意識到,您的Pig數據的模式可能是動態的,因此您實現的任何解析器都必須相當「巧妙」。 – Aaron

1

我建議你以Avro序列化格式存儲數據。它獨立於Pig,它允許處理像你所描述的複雜數據結構(所以你不需要編寫你自己的解析器)。例子見this article

相關問題