ОШИБКА 0: Скаляр имеет более одной строки на выходе - PullRequest
0 голосов
/ 28 октября 2019

У меня есть данные, заданные:

GUIDEPSE = LOAD  '/hdfs/staging/out/RDO0/PR/02/BB2/GUIDES/GUIDE_PERSONNE_USINE.csv' USING PigStorage(';') AS (
                        CdEfs:chararray,    
                        NoPse:chararray,
                        CdTyPse:chararray,
                        IdcRltPse:chararray);

1st : (02,50000007,P,C), 2nd :(02,50000019,P,C) ....

Мне нужно отфильтровать другие объекты данных, исходя из этого выше:

DONNEES_OCRE = FOREACH LOAD_OCRE_1CCDG GENERATE
              TXT_LST_PSE_ASS      AS TxtLstPseAss:chararray,
               TXT_LST_CTR_AS        AS  TxtLstCtrAss:chararray,
               IDT_UTI_ACQ           AS  IdtUtiAcq:chararray;              

Мне нужно отфильтровать так:

OCRE_data = FILTER  DONNEES_OCRE BY (TxtLstPseAss != GUIDEPSE.NoPse);

НО это возвращает эту ошибку:

ОШИБКА 0: Скаляр имеет более одной строки на выходе. 1-е: (02,50000007, P, C), 2-е: (02,50000019, P, C) (общая причина: «ПРИСОЕДИНЯЙТЕСЬ», а «FOREACH ... GENERATE foo.bar» должно быть «foo :: bar»)

Я попытался GUIDEPSE.$1 вместо GUIDEPSE.NoPse. Но он возвращает то же сообщение об ошибке.

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

Как я могу решить эту проблему, пожалуйста?

...