Как загрузить файлы на кластере Hadoop, используя Apache PIG? - PullRequest
3 голосов
/ 29 февраля 2012

У меня есть скрипт pig, и мне нужно загружать файлы из локального кластера hadoop.Я могу перечислить файлы с помощью команды hadoop: hadoop fs –ls / repo / mydata, `но когда я попытался загрузить файлы в сценарии pig, это не удалось.оператор загрузки выглядит так:

in = LOAD '/repo/mydata/2012/02' USING PigStorage() AS (event:chararray, user:chararray)

сообщение об ошибке:

Message: org.apache.pig.backend.executionengine.ExecException: ERROR 2118: Input path does not exist: file:/repo/mydata/2012/02

Есть идеи?спасибо

Ответы [ 3 ]

4 голосов
/ 06 сентября 2012

Мое предложение:

  1. Создать папку в формате hdf: hadoop fs -mkdir /pigdata

  2. Загрузить файл в созданную папку hdfs: hadoop fs -put /opt/pig/tutorial/data/excite-small.log /pigdata

(или вы можете сделать это из grunt shell как grunt> copyFromLocal /opt/pig/tutorial/data/excite-small.log /pigdata)

  1. Выполнить латиноамериканский скрипт:

       grunt> set debug on
    
       grunt> set job.name 'first-p2-job'
    
       grunt> log = LOAD 'hdfs://hostname:54310/pigdata/excite-small.log' AS 
                  (user:chararray, time:long, query:chararray); 
       grunt> grpd = GROUP log BY user; 
       grunt> cntd = FOREACH grpd GENERATE group, COUNT(log); 
       grunt> STORE cntd INTO 'output';
    
  2. Выходной файл будет сохранен в hdfs://hostname:54310/pigdata/output

1 голос
/ 14 августа 2015

Избавьтесь от пробела по обеим сторонам от "=" в = LOAD '/ repo / mydata / 2012/02' ИСПОЛЬЗОВАНИЕ PigStorage () AS (событие: chararray, пользователь: chararray)

1 голос
/ 07 сентября 2014

Я столкнулся с той же проблемой .., пожалуйста, найдите мои предложения ниже:

  1. Чтобы начать работать с PIG, введите: [root @ localhost training] # pig -x local

  2. Теперь введите оператор загрузки, как я делаю в следующем примере: grunt> a = LOAD '/home/training/pig/TempFile.txt' using PigStorage (',') as (c1: chararray, c2: chararray, c3: chararray);

...