我需要在java mapreduce程序中执行一个python脚本。
这里,在映射器类中,我需要执行python命令:
python methratio.py --ref=../refernce/referncefile -r -g --out=Ouputfile ./Inputfile
这里的 Inputfile 是 hdfs 中的输入文件,输出文件(在 hdfs 中)是 python 脚本写入输出的地方。
我可以使用流程生成器或任何其他更好的选项吗?
我不知道
这是否可以帮助你,但是你可以在java中以这种方式执行系统命令:
public static void main(String[] args) throws IOException {
String s = null;
String command = "python <your_command>";
Process p = Runtime.getRuntime().exec(command);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
// read the output from the command
System.out.println("Here is the standard output of the command:n");
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
}
您可以在 http://alvinalexander.com/java/edu/pj/pj010016 中看到详细示例
希望这对您:D有所帮助