Загрузите файлы json с другой схемой для одного и того же элемента в Pig

#json #hadoop #apache-pig

Вопрос:

Я пытаюсь загрузить файлы json, и когда я загружаю определенное поле, pig, похоже, распознает его как строку или пакет.

Элемент Json «программа» в файле может быть:

 "program":"open"
 

Или :

 "program": ["jump","jump"]
 

Я использую следующий код для загрузки файла :

 rel = LOAD '$filePath' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') AS (json:map []);

flat = FOREACH rel GENERATE
(chararray)json#'program' AS program;
 

Но когда я пытаюсь отфильтровать, скрипт выдает ошибку (не удается отфильтровать с помощью пакета).

 open = FILTER flat BY program MATCHES 'open';
 

Если у кого-нибудь есть идея ?

Заранее спасибо!

Комментарии:

1. Если у кого-то есть такая же проблема, я решил ее следующим образом : СГЛАДИТЬ( json#’программа’) КАК программу

2. Не стесняйтесь отвечать ниже, а не оставлять комментарий