Hive и Hbase стол для гипотезы - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть облако IBM, где у меня есть Hive / Hbase, я просто создаю "таблицу" в Hive и также загружаю некоторые данные из файла CSV.

Мой CSV-файл содержит информацию из приложений магазина Google Play.

Мои команды для создания и загрузки данных в мою таблицу следующие:

hive>     create table if not exists app_desc (name string,
          category string, rating int, 
          reviews int, installs string,
          type string, price int, 
          content string, genres string,
          last_update string, current_ver string, 
          android_ver string) 
    row format delimited fields terminated by ',';

hive > load data local inpath '/home/uamibm130/googleplaystore.csv' into table app_desc;

Ладно, работает правильно, и с помощью функции выбора я получаю данные правильно.

Теперь я хочу создать таблицу HBASE, моя проблема в том, что я не знаю, как это сделать правильно.

Прежде всего, я создаю Hbase Db -> create google_db_, google_data, info_data

Теперь я пытаюсь создать внешнюю таблицу с помощью этой команды куста, но я получаю сообщение об ошибке, что моя таблица не найдена.

Это команда, которую я использую для создания таблицы внешнего улья.

create external table uamibm130_hbase_google (name string, category string, rating int, reviews int, installs string, type string, price int, content string, genres string, last_update string, current_ver string, android_ver string) 
        stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key, 
    google_data:category,google_data:rating, info_data:reviews, 
    info_data:installs, info_data:type, info_data:price, info_data:content, 
    info_data:genres, info_data:last_update, info_data:current_ver, 
    info_data:android_ver") TBLPROPERTIES("hbase.table.name" = "google_db_");

Я не знаю, как правильно создать таблицу Hbase на основе схемы Hive для правильной загрузки моих данных .csv.

Есть идеи? Я новичок в этом.

Спасибо!

1 Ответ

0 голосов
/ 04 ноября 2018

Попробуйте с приведенным ниже оператором создания таблицы в HBase,

Создать Hbasetable:

hbase(main):001:0>create 'google_db_','google_data','info_data'

Создать внешнюю таблицу Hive на Hbase:

hive> create external table uamibm130_hbase_google (name string, category string, rating int, reviews int, installs string, type string, price int, content string, genres string, last_update string, current_ver string, android_ver string) 
     stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key, 
    google_data:category,google_data:rating, info_data:reviews, 
    info_data:installs, info_data:type, info_data:price, info_data:content, 
    info_data:genres, info_data:last_update, info_data:current_ver, 
    info_data:android_ver") TBLPROPERTIES("hbase.table.name" = "google_db_",
    "hbase.mapred.output.outputtable" = "google_db_");

Затем вставьте данные в Hive-Hbase table(uamibm130_hbase_google) из Hive table(app_desc).

Вставить данные в таблицу Hive-Hbase:

Hive> insert into table uamibm130_hbase_google select * from app_desc;
...