#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. Не стесняйтесь отвечать ниже, а не оставлять комментарий