Java & Pig - 使用PigServer向pig脚本传递参数

3

我有一个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脚本传递参数:

pig -f "Desktop/text_v3.pig" -param param1=value1 -param2=value2

但是在PigServer中,我不知道该如何做。

你知道如何解决这个问题吗?

谢谢。


在使用registerScript之后,您如何执行此脚本? - Karthik
1个回答

3
您可以使用这个版本的registerScript方法:
public void registerScript(String fileName, Map<String,String> params)

Java文档的说明如下:“注册一个Pig脚本文件。文件中的参数将被替换为params中的值。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接