2014-02-19 4 views
0

Я пытаюсь написать сценарий свиньи, чтобы сделать следующее.Извлечение части ввода из Pig Script

  1. Загрузить данные из списка источников. Я понимаю, что путь к списку - это «s3: // prod/propensity/probablitity/# {runDate}/# {partition}/part *" Так, например, если runDate - 20131020, а раздел - 1,3. Нагрузка на свиньи будет загружаться из s3: \ tap-prod/склонность/вероятность/20131020/1/часть * и s3: \ tap-prod/склонность/вероятность/20131020/3/part *
  2. Что я хочу в выход должен иметь текущий раздел как столбец. Поэтому строки, считанные из раздела 1, должны иметь столбец со значением 1, а строки, считанные из раздела 3, должны иметь значение столбца как 3.

  3. В настоящее время я передаю «s3: // tap-prod/propensity/glPurchaseProbabilities/# { runDate}/# {partition} /glPurchaseProbabilities.tsv/part* "в качестве входных данных для скрипта Pig.

И мой скрипт свиньи делает что-то подобное для загрузки. s3_consolidated_results = нагрузка «$ ввода» с помощью PigStorage («\ т», «») -noschema

Может кто-нибудь помочь мне с тем, как перехватить эту переменную ввода и извлечения из него раздел и нажмите в колонке?

ответ

0

Попробуйте это:

A = LOAD 'x' using PigStorage('\t','-tagsource'); 

Цитирование из документации:

('tagsource') - Add a first column indicates the input file of the record.

После этого вы можете сделать проекцию, чтобы получить часть файла, что ты на самом деле заинтересованы.

+0

пробовал это. Я продолжаю получать нераспознанную опцию. Причиняет: java.lang.RuntimeException: org.apache.commons.cli.UnrecognizedOptionException: непризнанная опция : -tagsource на org.apache.pig.builtin.PigStorage. (PigStorage.java:187) ... 29 еще Вызвано: org.apache.commons.cli.UnrecognizedOptionException: непризнанная опция: -tagsource – user3326635

+0

какая версия свиньи вы используете? – Frederic

+0

ApachePig = 0.10; – user3326635

Смежные вопросы