Apache Hive - Понимание разделения в улье

hive

194 просмотра

1 ответ

85 Репутация автора

Я пытаюсь изучить Apache Hive и проходил Oreilly Programming Hive, и у меня возникли некоторые проблемы с пониманием разделения в улье. Следующий запрос:

CREATE TABLE employees (
 name STRING,
 salary FLOAT,
 subordinates ARRAY<STRING>,
 deductions MAP<STRING, FLOAT>,
 address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>
)
PARTITIONED BY (country STRING, state STRING);

Здесь я создаю раздел в зависимости от страны и государства. Но в метаданных таблицы нет такого поля, как страна, и как в этом случае работает раздел? Как улей удается сделать эту работу?

Также может кто-нибудь, пожалуйста, поделитесь некоторыми наборами данных для работы ..

Как данные загружаются в такую ​​таблицу?

Автор: sk7979 Источник Размещён: 18.07.2016 11:25

Ответы (1)


0 плюса

1750 Репутация автора

PARTITIONED BYЭто не означает, что вы собираетесь разделять данные на основе этих существующих столбцов, но вы собираетесь добавить эти «столбцы» в качестве способа организации таблицы (или, точнее, структуры файла для хранения данных).

Ключи разделов будут влиять на структуру хранения данных в Hive. В этом случае Hive создаст две «подпапки» в разделе «сотрудники» («страна» и «штат») и будет использовать эти ключи разделов в качестве обычных столбцов, которые вы также можете использовать в своих (более эффективных) SELECTзапросах ( WHERE country = something AND state = other) как в ваших загрузках данных . Указав эти ключи в ваших загрузках и выборках, Hive сможет быстрее сохранять и извлекать данные, поскольку теперь хранение данных организовано.

Конкурс Kaggle имеет множество наборов данных (и многих других тем), которые вы можете использовать. Они в основном направлены на использование алгоритмов машинного обучения, но ничто не мешает вам использовать их для собственного обучения.

Автор: Jaime Caffarel Размещён: 18.07.2016 01:57
Вопросы из категории :
32x32