我有一些pig輸出文件,並希望在另一臺機器上讀取它們(沒有hadoop安裝)。我只想讀取一個製表符分隔的純文本行並將其解析爲一個java對象。我猜測我們應該能夠使用pig.jar作爲依賴關係並且能夠讀取它。我找不到相關的文檔。我認爲this類可以使用?我們怎樣才能提供模式。如何在單獨的Java程序中讀取pig輸出
0
A
回答
0
你的豬輸出文件只是文本文件,對吧?那麼你不需要任何豬或胡桃罐。 我上次與Pig一起工作的時間是在亞馬遜的EMR平臺上,輸出文件被藏在s3桶中。它們只是文本文件,標準java可以讀取文件。
您引用的那個類是用於從某些文本格式讀入豬的。
你是否要求一個庫來將豬數據模型解析爲java對象?即文件表示的元組&包等等?如果是這樣,那麼它可能更容易編寫它自己。這是一個非常簡單的數據模型,只有3種數據類型。
1
我建議你以Avro序列化格式存儲數據。它獨立於Pig,它允許處理像你所描述的複雜數據結構(所以你不需要編寫你自己的解析器)。例子見this article。
相關問題
- 1. Java程序讀取.csv並給出排序的.xml輸出
- 2. 如何在java中有一個線程讀取兩個單獨線程的值
- 3. Java - 如何讀取7z的輸出?
- 4. 如何讀取Java中exec進程的輸出?
- 5. java vs scala - 在單獨的線程中讀取文件
- 6. 如何從我的NsLookup程序獲得輸出到單獨程序中的JTextArea
- 7. 在控制檯應用程序中單獨輸入和輸出?
- 8. 如何創建單獨的輸出行,取決於輸出來自的線程?
- 9. 如何從java讀取腳本輸出?
- 10. Java verbose:gc如何讀取輸出?
- 11. ParquetWriter在java獨立程序中輸出空的地板文件
- 12. 如何運行Java程序並在PHP中獲取輸出?
- 13. 在單獨的線程中讀取序列號
- 14. C++讀取java進程輸出
- 15. 讀取應用程序的輸出
- 16. grunt和java上的PIG輸出差異
- 17. 如何從apache pig中獲取部分r-0000的輸出
- 18. Java common-exe:在單獨的線程中運行批處理並行讀取批輸出
- 19. 如何從過程輸出讀取
- 20. 使用單獨的程序包輸出程序
- 21. 如何讀取進程輸出進程中的進程消息?
- 22. Java程序如何完全讀取自己的控制檯輸出?
- 23. 在程序中讀取java卡的UID
- 24. 在java中讀取c程序的stdout
- 25. 如何在Linux中讀取另一個進程的輸出C
- 26. 如何在控制檯中讀取while true過程的輸出?
- 27. 如何使用Java進程讀取mysql控制檯輸出
- 28. 如何使用C#讀取其他程序的輸出?
- 29. 如何實時讀取外部程序的標準輸出?
- 30. 從控制檯程序讀取輸出
我的文件還包含行李和地圖,我必須爲此編寫解析器嗎?例如,這種模式很難解析:A = LOAD'mydata'AS(T1:元組(f1:int,f2:int),B:包{T2:元組(t1:float,t2:float)},M :map []); 我猜豬庫是將它們解析成一個java對象吧? – Arun
我不確定您是否可以重複使用Hadoop外部的Pig api。抱歉。我剛剛意識到,您的Pig數據的模式可能是動態的,因此您實現的任何解析器都必須相當「巧妙」。 – Aaron