我正在加载包含56个字段的CSV文件。我想在Pig中为元组中的所有字段应用TRIM()函数。
我试过了:
B = FOREACH A GENERATE TRIM(*);
但它失败并出现以下错误 -
错误org.apache.pig.tools.grunt.Grunt - ERROR 1045:无法推断匹配 org.apache.pig.builtin.TRIM的函数可以是多个,也可以不是 适合。请使用明确的演员。
请帮忙。谢谢。
答案 0 :(得分:0)
要修剪Pig中的元组,您应该创建一个UDF。注册UDF并将带有Foreach
语句的UDF应用于要修剪的元组的字段。下面是使用UDF修剪元组的代码。
public class StrTrim extends EvalFunc<String> {
public String exec(Tuple input) throws IOException {
if (input == null || input.size() == 0)
return null;
try {
String str = (String)input.get(0);
return str.trim();
}
catch(Exception e) {
throw WrappedIOException.wrap("Caught exception processing input row ", e);
}
}
}