У меня есть данные, заданные:
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
. Но он возвращает то же сообщение об ошибке.
Затем я проверил другие решения здесь, но я даю правильный путь: точка , а не :: .
Как я могу решить эту проблему, пожалуйста?