我有这个 java 程序,它在 MapReduce 模式下执行一个 Pig 脚本。这是代码:
import java.io.IOException;
import java.util.Properties;
import org.apache.pig.ExecType;
import org.apache.pig.PigServer;
import org.apache.pig.backend.executionengine.ExecException;
public class pigCV {
public static void main(String args[]){
PigServer pigServer;
try {
Properties props = new Properties();
props.setProperty("fs.default.name", "hdfs://hdfs://localhost:8022");
props.setProperty("mapred.job.tracker", "localhost:8021");
pigServer = new PigServer(ExecType.MAPREDUCE, props);
pigServer.registerScript("Desktop/text_v3.pig");
}
catch (ExecException e) { e.printStackTrace(); }
catch (IOException e) { e.printStackTrace(); }
}
}
通过 linux 命令行,我可以使用如下命令将参数传递给 pig 脚本:
但是使用 PigServer,我没有找到方法。
你知道如何解决这个问题吗?
谢谢你。
最佳答案
您可以使用此版本的 registerScript
方法:
public void registerScript(String fileName, Map<String,String> params)
java docs解释如下:“注册一个pig脚本文件。文件中的参数将替换为params中的值。”
关于Java & Pig - 使用 PigServer 将参数传递给 Pig 脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17672344/