Я изучаю Если бы 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('|');