используя PIG для загрузки файла - PullRequest
9 голосов
/ 11 ноября 2011

Я очень новичок в PIG, и у меня возникло ощущение основной проблемы. У меня есть строка кода, которая гласит:

A = load 'Sites/trial_clustering/shortdocs/*'
      AS (word1:chararray, word2:chararray, word3:chararray, word4:chararray);

где каждый файл представляет собой строку из 4 слов, разделенных запятыми. Однако PIG не разделяет это на 4 слова. Когда я делаю сброс A, я получаю: (Money, coins, loans, debt,,,) Я пробовал поискать в Google, и я не могу найти, в каком формате должен быть мой файл, чтобы PIG правильно его интерпретировал. Пожалуйста, помогите!

1 Ответ

25 голосов
/ 12 ноября 2011

Ваша проблема в том, что Pig по умолчанию загружает файлы, разделенные табуляцией , а не запятой.То, что происходит, "Money, coins, loans, debt" застревает в вашем первом столбце, word1.Когда вы печатаете его, у вас возникает иллюзия, что у вас есть несколько столбцов, но на самом деле первый из них заполнен всей вашей строкой, а остальные равны нулю.

Чтобы это исправить, вы должны указать PigStorageзагрузить через запятую, выполнив:

A = LOAD '...' USING PigStorage(',') AS (...);
...