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

标签 java hadoop bigdata apache-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文档解释如下:“注册一个pig脚本文件。文件中的参数将被params中的值替换。”

关于Java & Pig - 使用 PigServer 将参数传递给 pig 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17672344/

相关文章:

database - HDFS 中的数据 block 大小,为什么是 64MB?

Python:对具有大量变量的月度数据进行聚类分析

performance - R 中的高性能大数据处理

java - Apple AWT 内部异常 : NSWindow drag regions should only be invalidated on the Main Thread

hadoop - 在hadoop中是否可以有一个场景,其中只有1个map任务和0个reduce任务?

hadoop - Hadoop中的Oozie pig 工作流程2.2 pig 0.12.1 oozie 4.1.0

hadoop - Name Node 存储什么?

java - 是否有任何理由将异常的原因设置为自身?

java - 如何使用 JAVA 在 Web 应用程序中导入和显示 3D 文件(.STL)?

java - 无锁 CAS 混淆