2015-04-15 4 views
1

Я читал много о форматах данных для hadoop и в настоящее время, похоже, понимает, что в зависимости от используемого вами пакета наиболее продвинутыми форматами являются ORC (хорошо поддерживается на Hortonworks) или Parquet (хорошо поддерживается на Cloudera).В каком формате и как мне импортировать мои строки JSON, такие как данные в hadoop?

Теперь большинство примеров/учебников для начинающих включают простые данные csv. Одна запись в строке. Часто они импортируют CSV в SQL-подобную структуру (Hive), не сохраняя ее как ORC.

JSON также поддерживается Hadoop, но not so well integrated. Также согласно to an overview article JSON - плохой формат, потому что его нельзя разделить на куски по линиям. JSON линии does not seem to be supported natively.

Мои данные смотрит кино мета-данные, как это:

{title: "Movie 1", rating: 4.3, tags: ["Romance", "Music"], 
    actors: ["Leonardo di Caprio"], source: "example.com"} 
{title: "Movie 2", cinema_viewers: 10000000, budget: 10000000, 
    categories: ["Action"], role_importance: {'Adam Sandler': 2}, 
    source: "example.net"} 

Как мне импортировать мои данные, если у меня есть структура JSON строки? Это сильно зависит от механизма запросов, который я хочу использовать? До сих пор я узнал только о Hive и Pig. Кажется, что оба могут использоваться с схемой HCatalog или без. Но я использовал только как простые данные столбца без списков (которые в SQL требовали бы таблицы внешнего ключа).

Также было бы возможно разделить данные на несколько разных файлов перед импортом - эмуляция отношения внешнего ключа, как в SQL. Или мы всегда сохраняем плотно связанные данные в одном файле, если это возможно?

Моя психическая проблема кажется, что я не понимаю все преобразование по пути: формат, в котором я должен хранить данные в файлах, которые затем могут быть импортированы с использованием табличной абстракции, сохранены как другой файл (OCR), который затем будет запрашиваться с помощью языков из другого домена (например, Hive или Pig), которые могут быть переведены на MapReduce или на какой-либо другой промежуточный уровень (Spark).

Отказ от ответственности: Я использовал Hadoop как имя для всей среды интеллектуального анализа данных, включая все API запросов, такие как Hive и Pig, а не только для системы распространения файлов.

ответ

0

Я новичок в этом мире Hadoop/улей, так что я не могу ответить на все ваши вопросы, но я был в состоянии преобразовать JSON за формат строки в формате ORC после этого example.

Надеюсь, это поможет.