1
recs = load 'a.txt';
grp = group recs with each group having 5 records;
我需要做類似上面的事情。
因此,如果recs有10條記錄,我希望創建組以便每個組每個都有5條記錄。豬 - 創建給定大小的組
怎麼辦?
recs = load 'a.txt';
grp = group recs with each group having 5 records;
我需要做類似上面的事情。
因此,如果recs有10條記錄,我希望創建組以便每個組每個都有5條記錄。豬 - 創建給定大小的組
怎麼辦?
一個可擴展的解決方案是有一個UDF累積記錄到一個新書包和輸出包時,它有5個元素和空袋(或空),如果它不具有5個元素呢。
一個缺點是每個地圖的最後一組可能少於5個元素(所以可以嘗試填充空值或丟棄/重新組合它們)。
recs = load 'a.txt';
grp_5 = foreach recs generate GROUPER(*, 5) as group;
grp = filter grp by not IsEmpty(group);
編輯發表評論:
定期袋屬性將是很好的UDF通常instantiated在地圖上那麼它的exec()被調用每個記錄的開始。想想像像MAX函數一樣通過它流式傳輸所有記錄。
所以,我將不得不在UDF類中使用一個靜態變量?或者還有其他方法嗎? – dharm0us 2012-03-09 19:45:29
由於使用非靜態屬性的UDF的生命週期應該更安全。 – Romain 2012-03-09 21:04:37