Фрейм данных Pig NULL генерирует данные при использовании внутри предложения 'foreach' - PullRequest
0 голосов
/ 09 ноября 2018

Извините, если я использую неправильные стандартные имена свиней, поскольку я новичок в этом.

У меня есть 2 кадра данных в Pig (X и Y). Обе имеют переменные: j1 и j2. Я делаю следующие операции:

A = JOIN X by (j1) left outer, Y by (j1);

SPLIT A into B (IF Y::j1 IS NULL), C otherwise;

D = FOREACH B GENERATE X::j2;

Здесь, если мы делаем DUMP B, то внутри него нет данных. Если мы делаем DUMP C, то появляются данные d1. Но когда я делаю DUMP D, появляются те же самые данные d1, которые связаны, потому что у B не было точек данных.

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

ПРИМЕЧАНИЕ: я пробовал:

  1. Сохранение B и последующий просмотр файлов деталей вручную, но в B. ничего нет *

  2. Я также сохранил A, затем вышел из сеанса и затем начал сеанс в grunt и Loaded A, а затем выполнил последние 2 строки кода (т.е. split и foreach). И когда я делаю это, тогда код работает должным образом, и DUMP D не показывает никаких выходных данных (что правильно).

НАЙТИ РЕШЕНИЕ: Это была не проблема свиней. Это была проблема Jar, которую я использовал для чтения данных и, следовательно, для создания фреймов данных X и Y. По сути, Jar не смог правильно прочитать файл csv, что создает проблему в операции объединения выше.

...