2015-10-13 15 views
0

我想用豬是這種形式加載我輸入文件中的數據(正常和JSON數據混合物)如何加載自定義記錄使用PIG

row1val1, row1val2, {row1json1} 
row2val1, row2val2, {row2json2} 
row3val1, row3val2, {row3json3} 
... 

我要加載的JSON與數據aloung row'n'val'n'(前兩列)使用已定義的模式,但由PIG提供的JsonLoader無法加載它。

請建議替代品或如果這可以直接使用PIG完成。

我是否需要重寫或編寫自己的JsonLoader來執行此任務?

請提出建議。 謝謝,歡呼:)!

+0

Json的結構是否複雜?如果沒有,那麼我們可以做Json String to Map轉換。 – Learner

+0

給@Learner,是的JSON是複雜的。目前我已經編寫了一個自定義的加載器,但是它對我的json非常具體,並且該json中的任何更改都可能需要對該自定義加載器進行更改,我想避免這種情況。請建議.. –

回答

0

將數據加載爲CSV;無論你能把JSON作爲一個字符串字段。

嘗試對JSON數據使用JavaScript UDF。 這並不安全,但它很簡單。我想這取決於你對數據的信任。

function JSON2Pig(JSONString) { 
    if (JSONString == null) { 
    return null; 
    } else { 
    obj = eval("("+JSONString+")"); 
    return obj; 
    } 

} 
相關問題