java语言中的用户定义函数

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

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

  1. public String exec(Tuple input)
  2. throws IOException {
  3. if(input.equals("age")){
  4. outputFile = new FileWriter("C:\\UDF\\output_age.csv");
  5. }else{
  6. outputFile = new FileWriter("C:\\UDF\\output_general.csv");
  7. }
  8. }

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

vm0i2vca

vm0i2vca1#

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

  1. public String exec(Tuple input)
  2. throws IOException {
  3. String inputAge = input.get(0).toString();
  4. if(inputAge.equals("age")){
  5. // file creation logic
  6. outputFile = new FileWriter("C:\\UDF\\output_age.csv");
  7. }else{
  8. // file creation logic
  9. outputFile = new FileWriter("C:\\UDF\\output_general.csv");
  10. }
  11. }

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

相关问题