свинья на латыни - не показывает правильные номера записей

Я написал pig script для wordcount, который отлично работает. Я мог видеть результаты сценария свиньи в моем выходном каталоге в hdfs. Но ближе к концу моей консоли я вижу следующее:

Success!

Job Stats (time in seconds):
JobId   Maps    Reduces MaxMapTime  MinMapTIme  AvgMapTime  MedianMapTime   MaxReduceTime   MinReduceTime   AvgReduceTime   MedianReducetime    Alias   Feature Outputs
job_local1695568121_0002    1   1   0   0   0   0   0   0   0   0   words_sorted    SAMPLER 
job_local2103470491_0003    1   1   0   0   0   0   0   0   0   0   words_sorted    ORDER_BY    /output/result_pig,
job_local696057848_0001 1   1   0   0   0   0   0   0   0   0   book,words,words_agg,words_grouped  GROUP_BY,COMBINER   

Input(s):
Successfully read 0 records from: "/data/pg5000.txt"

Output(s):
Successfully stored 0 records in: "/output/result_pig"

Counters:
Total records written : 0
Total bytes written : 0
Spillable Memory Manager spill count : 0
Total bags proactively spilled: 0
Total records proactively spilled: 0

Job DAG:
job_local696057848_0001 ->  job_local1695568121_0002,
job_local1695568121_0002    ->  job_local2103470491_0003,
job_local2103470491_0003


2014-07-01 14:10:35,241 [main] INFO  org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Success!

Как видите, работа удалась. но не Input(s) и output(s). Оба они говорят, что successfully read/stored 0 records и все значения счетчика равны 0. почему значение равно нулю. Они не должны быть равны нулю.

Я использую hadoop2.2 and pig-0.12

Вот сценарий:

book = load '/data/pg5000.txt' using PigStorage() as (lines:chararray);
words = foreach book generate FLATTEN(TOKENIZE(lines)) as word;
words_grouped = group words by word;
words_agg = foreach words_grouped generate group as word, COUNT(words);
words_sorted = ORDER words_agg BY $1 DESC;
STORE words_sorted into '/output/result_pig' using PigStorage(':','-schema');

ПРИМЕЧАНИЕ: мои данные находятся в /data/pg5000.txt, а не в каталоге по умолчанию, который /usr/name/data/pg5000.txt

РЕДАКТИРОВАТЬ: вот вывод печати моего файла на консоль

hadoop fs -cat /data/pg5000.txt | head -10
The Project Gutenberg EBook of The Notebooks of Leonardo Da Vinci, Complete
by Leonardo Da Vinci
(#3 in our series by Leonardo Da Vinci)

Copyright laws are changing all over the world. Be sure to check the
copyright laws for your country before downloading or redistributing
this or any other Project Gutenberg eBook.

This header should be the first thing seen when viewing this Project
Gutenberg file.  Please do not remove it.  Do not change or edit the
cat: Unable to write to output stream.

person brain storm    schedule 01.07.2014    source источник
comment
Пожалуйста, поделитесь скриптом   -  person Rajnish G    schedule 02.07.2014
comment
@RajnishG: добавлен скрипт выше   -  person brain storm    schedule 02.07.2014
comment
Вы можете сделать hadoop fs -tail /data/pg5000.txt просто для проверки   -  person sayan dasgupta    schedule 03.07.2014
comment
@sayandasgupta: я вставил над содержимым   -  person brain storm    schedule 03.07.2014


Ответы (1)


Пожалуйста, исправьте следующую строку

book = load '/data/pg5000.txt' using PigStorage() as (lines:chararray);

to

book = load '/data/pg5000.txt' using PigStorage(',') as (lines:chararray);

Я предполагаю, что разделитель в качестве запятой здесь использует тот, который используется для разделения записей в вашем файле. Это решит проблему

Также обратите внимание --

Если аргумент не указан, PigStorage примет формат с разделителями табуляции. Если указан аргумент-разделитель, он должен быть однобайтовым символом; любой литерал (например: 'a', '|'), известный управляющий символ (например: '\t', '\r') является допустимым разделителем.

person Rajnish G    schedule 03.07.2014