pig store在使用java代码调用store命令时无法运行该命令(嵌入式模式)

0lvr5msh  于 2021-05-31  发布在  Hadoop
关注(0)|答案(0)|浏览(286)

我正在学习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('|');

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题