2016-12-16 12 views
0

У меня есть некоторые данные в следующей форме ключа, которую мне нужно загрузить в Pig.Загрузите несколько ключей с массивами значений в свиньи

{"California":["NJ","Seattle","NY"],"NJ":["California","Seattle","NY"],"NY":["NJ","Seattle","California"],"Seattle":["NJ","California","NY"]} 

Данные получены в одной строке. В конечном итоге мне нужно иметь доступ к ключам как источникам и массиву значений в качестве возможных мест назначения на Pig.

Я пробовал несколько способов загрузить эти данные с помощью JsonLoader, загрузчика JSON слона, но он сохранял возвращаемые пробелы вместо данных.

Пожалуйста, помогите.

ответ

0

JsonLoader ожидает наличия предопределенной схемы в отличие от того, что у вас есть. Насколько велик ваш набор данных? Если это не так уж и много, вам лучше писать простой python/Java UDF, который берет всю строку json, конвертирует в мешок кортежей, который вы хотите. В сценарии свиней просто позвоните в этот UDF и позвоните по номеру FLATTEN на сумке, которую он возвращает.

+0

Спасибо за ваш ответ. Я никогда не писал никаких UDF, прежде чем пытаться проверить альтернативные подходы, если они доступны. Данные не будут очень большими. Знаете ли вы о существующих UDF, которые я мог бы попробовать и настроить? –

+0

Написание UDF очень просто. Вы должны посмотреть документацию и простой учебник/примеры, которые подробно объясняют это: https://pig.apache.org/docs/r0.9.1/udf.html. В java есть много json-библиотек, которые можно использовать, если вы пишете Java UDF. У Python есть библиотека json, которую нужно импортировать, чтобы сделать то же самое – coder

+0

Я не уверен, какой тип данных должен быть сопоставлен на Java, чтобы наконец получить все источники как ключи и все соответствующие адресаты. Я должен использовать эти значения в скрипте для дальнейшего построения логики. Учитывая настоятельную необходимость, я хотел проверить, сделал ли кто-нибудь это раньше. –

 Смежные вопросы

  • Нет связанных вопросов^_^