我正在嘗試創建一個更改列順序的PIG腳本。這是我想出迄今:由於括號和逗號導致PigUnit測試失敗
inputdata = LOAD 'path/to/file/on/hdfs' USING PigStorage() AS (param1:chararray, param2:chararray, param3:chararray);
outputdata = FOREACH inputdata GENERATE param1, param3, param2;
DUMP outputdata;
我還沒有嘗試這一尚未對HDFS,但我想我會繼續前進,先寫單元測試。不幸的是它不起作用。
單元測試代碼:
PigTest test = new PigTest("path_to_script.pig");
FixHadoopOnWindows.runFix();
String[] input = {
"valueparam1\tvalueparam2\tvalueparam3"
};
String[] output = {
"valueparam1\tvalueparam3\tvalueparam2"
};
test.assertOutput("inputdata", input, "outputdata", output);
的FixHadoopOnWindows位修復,所以我可以輕鬆運行在Windows機器上我的單元測試。我在一些博客中發現它,並幫助解決了我遇到的許可問題。
所以現在我的測試運行,但問題是assertOutput失敗。當我檢查的區別,我得到這個:
預計:
valueparam1 valueparam3 valueparam2
實際:
(valueparam1,valueparam3,valueparam2)
所以我讓這些括號和逗號我從來沒有要求。現在我不確定這是否是單元測試代碼中的錯誤,或者是我的實際腳本中的錯誤,因此任何建議都可以讓我開始。謝謝。