微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java&Pig-使用PigServer将参数传递给Pig脚本

我有这个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方法

public void registerScript(String fileName, Map<String,String> params)

java docs的解释如下:“注册一个Pig脚本文件.文件中的参数将替换为params中的值.”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐