-1

我正在使用 Java 在 Hadoop 环境中为 Pig Latin 创建用户定义函数 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 Latin 本身?

4

1 回答 1

0

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

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 中编写 Java UDF作为参考。

于 2016-03-10T09:19:19.747 回答