我試圖在Apache Pig中追加一個數據集到另一個數據集。有幾個例子,但我認爲不同於我的問題。Apache PIG:將一個數據集追加到另一個
這是我的豬的腳本:
LINE1 =負載 'LINE1 /點' 利用表();
line20 =使用Table()加載'line20/points';
DESCRIBE line1;
DUMP line1;
DESCRIBE line20;
DUMP line20;
X = UNION line1,line20;
DESCRIBE X;
DUMP X;
我得到這個:
線路1:{鍵:字節組,Y:(名稱:chararray,值:長),X(名稱:chararray,值:長),列:{ (名稱:chararray,值:字節陣列)}}
(ab48a8567d58cfea52905db0e94d88d3,(Y,3),(X,3))
(ab48a8567d58cfea52905db0e94d88d3,(Y,1),(X,1))
(ab48a8567d58cfea52905db0e94d88 d3,(y,2),(x,2))
line20:{key:bytearray,y :(名稱:chararray,value:long),x:(name:chararray,value:long) :{(名稱:chararray,值:字節陣列)}}
(203146881b7ef0d26902ea440e734b79,(Y,20),(X,20))
(203146881b7ef0d26902ea440e734b79,(Y,21),(X,21) )
(203146881b7ef0d26902ea440e734b79,(Y,22),(X,22))
X:{鍵:字節組,Y:(名稱:chararray,值:長)中,x:(名稱:chararray,價值:長),柱NS:{(名稱:chararray,值:字節陣列)}}
(203146881b7ef0d26902ea440e734b79,(Y,21),(X,21))
(203146881b7ef0d26902ea440e734b79,(Y,22),(X,22 ))
(203146881b7ef0d26902ea440e734b79,(Y,20),(X,20))
(203146881b7ef0d26902ea440e734b79,(Y,20),(X,20))
(203146881b7ef0d26902ea440e734b79,(Y, 21),(x,21))
(203146881b7ef0d26902ea440e734b79,(Y,22),(X,22))
結果是 'line20' 數據集的只是一個雙重拷貝。爲什麼?
我想要'line1'的值,然後'line20'的值。
順便說一句:...使用表(); - 這只是我實現的CassandraStorage,我自動爲列提供類型。
感謝您的幫助!
解
Configuration
是共享的。我忘了它,並且我正在使用Table()
實例相同的ID來初始化它們。
如果您可以將您的示例數據減少到幾行/列 - 這將有所幫助。 – Ruslan
完成。我希望它有幫助。 – ahypki
謝謝。這看起來很奇怪。我會嘗試將文本文件作爲輸入,並使用普通的PigStorage加載它們。只是爲了一個健全的檢查。如果這有幫助,那麼我會得出結論,問題在Table()中。你確定兩個調用不會相互重疊嗎? – Ruslan