2015-04-02 56 views
0

我正在加載一個包含56個字段的CSV文件。我想在Pig中爲元組中的所有字段應用TRIM()函數。在Pig中爲元組中的所有字段應用TRIM()

我想:

B = FOREACH A GENERATE TRIM(*); 

但它失敗,下面無差錯

錯誤org.apache.pig.tools.grunt.Grunt - 錯誤1045:無法推斷匹配 功能for org.apache.pig.builtin.TRIM作爲多個或不包含它們的組合。請使用明確的演員。

請大家幫忙。謝謝。

+0

你不能使用這樣的TRIM功能。你可以粘貼一些示例輸入嗎? – 2015-04-02 14:31:52

回答

0

要在Pig中修剪元組,您應該創建一個UDF。註冊UDF並將UDF與Foreach語句應用於要修剪的元組的字段。下面是用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); 
     } 
    } 
} 
相關問題