java语言中的用户定义函数

1l5u6lss  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(280)

我正在使用java为hadoop环境中的pig拉丁语创建一个用户定义的函数udf。我想创建多个输出文件。我尝试创建一个java程序来输出这些csv文件,如下所示:

public String exec(Tuple input) 
    throws IOException {

  if(input.equals("age")){
      outputFile = new FileWriter("C:\\UDF\\output_age.csv");
  }else{
      outputFile = new FileWriter("C:\\UDF\\output_general.csv");
  }
}

但这行不通。有没有其他方法可以做到这一点,不管是通过java还是通过pig拉丁语本身?

vm0i2vca

vm0i2vca1#

在编写udf时,需要注意数据类型。在这里 exec 方法将元组作为输入。要读取元组值,需要使用 tuple.get(0) 符号。即

public String exec(Tuple input) 
    throws IOException {
  String inputAge = input.get(0).toString();
  if(inputAge.equals("age")){
      // file creation logic 
      outputFile = new FileWriter("C:\\UDF\\output_age.csv");
  }else{
      // file creation logic
      outputFile = new FileWriter("C:\\UDF\\output_general.csv");
  }
}

您可以参考在pig中编写javaudf。

相关问题