我正在学习hadoop,我试着用java运行pig脚本,但它似乎跳过了脚本中编写的store命令,并且没有在特定位置生成输出数据文件。
但是,当我尝试使用命令行运行pig脚本时,它会根据需要提供输出数据文件。
首先,我认为java可能有一些权限问题,因为它没有创建文件。但是我尝试使用java在确切的位置创建一个文件,它很容易创建一个空文件。所以这似乎不是权限问题。
有没有人能告诉我,pig脚本在通过命令行使用时成功运行,但在嵌入式模式下失败,这是什么问题?
java代码:
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
import org.apache.pig.PigServer;
import java.io.IOException;
public class storePig {
public static void main(String args[]) throws Exception {
try {
PigServer pigServer = new PigServer("local");
runQuery(pigServer);
}catch (Exception e){
e.printStackTrace();
}
}
public static void runQuery(PigServer pigServer) throws IOException {
pigServer.registerScript("/home/anusharma/Desktop/stackoverflow/sampleScript.pig");
}
}
Pig脚本:
Employee = LOAD '/home/anusharma/Desktop/Hadoop/Pig/record.txt' using PigStorage(',') as (id:int, firstName:chararray, lastName:chararray, age:int, contact:chararray, city:chararray);
Employe = ORDER Employee BY age desc;
limitedEmployee = LIMIT Employe 4;
STORE limitedEmployee into '/home/anusharma/Desktop/stackoverflow/output' using
PigStorage('|');
暂无答案!
目前还没有任何答案,快来回答吧!