Улей загрузки данных в HDFS - PullRequest
0 голосов
/ 05 мая 2018

У меня есть набор данных, имеющий более 100 столбцов для каждой строки. Вопрос в том, как загрузить выбранные столбцы с помощью куста в hdfs.

например: col1, col2, col3 ... col50, col51 .... col99, col100. Мне нужно загрузить только выбранные столбцы col1, col2, col34 и col99. Подход 1: 1. загрузить все столбцы 2. и создать вид на основе выбранных столбцов. Подход 1 - нужно загрузить все столбцы без необходимости, и он будет занимать больше памяти в формате hdf. Также мне нужно написать большой запрос для определения столбца. , Любой другой лучший подход.

1 Ответ

0 голосов
/ 05 мая 2018

Hive обеспечивает табличное представление поверх HDFS данных. Если ваши данные в HDFS, то вы можете создать внешнюю таблицу для ссылки на существующие данные. Вам нужно будет поместить схему поверх данных. Это одноразовое усилие, и тогда вы можете использовать все функции Hive для изучения и анализа набора данных. Hive также поддерживает представления.

Иллюстрация

Пример файла данных: data.csv

1,col_1a,col1b
2,col_2a,col2b
3,col_3a,col3b
4,col_4a,col4b
5,col_5a,col5b
6,col_6a,col6b
7,col_7a,col7b

Загрузка и проверка данных в HDFS

hadoop fs -mkdir /hive-data/mydata

hadoop fs -put data.csv /hive-data/mydata

hadoop fs -cat /hive-data/mydata/*
1,col_1a,col1b
2,col_2a,col2b
3,col_3a,col3b
4,col_4a,col4b
5,col_5a,col5b
6,col_6a,col6b
7,col_7a,col7b

Создание таблицы Hive поверх данных HDFS в default базе данных

CREATE EXTERNAL TABLE default.mydata
    (
      id int, 
      data_col1 string, 
      data_col2 string
    )
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    LOCATION 'hdfs:///hive-data/mydata';

Запрос таблицы Улей

select * from default.mydata;
mydata.id   mydata.data_col1    mydata.data_col2
1           col_1a              col1b
2           col_2a              col2b
3           col_3a              col3b
4           col_4a              col4b
5           col_5a              col5b
6           col_6a              col6b
7           col_7a              col7b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...