Pig store не может запустить команду store, когда она вызывается с использованием кода java (встроенный режим) - PullRequest
0 голосов
/ 20 марта 2020

Я изучаю Если бы oop, я попытался запустить свой сценарий PIG с использованием java, но похоже, что он пропускает команду сохранения, записанную в сценарии, и не создает файл выходных данных в определенном месте.

Но когда я пытаюсь запустить скрипт 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-Script:

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('|');
...