Hive - загрузка в расположение по умолчанию внешней таблицы - PullRequest
0 голосов
/ 11 мая 2018

У меня есть внешняя таблица, созданная в улье с местоположением по умолчанию

 CREATE EXTERNAL TABLE `testtable`(
      `id` int, 
      `name` string)
    ROW FORMAT DELIMITED 
     FIELDS TERMINATED BY ',' 
    STORED AS INPUTFORMAT 
     'org.apache.hadoop.mapred.TextInputFormat' 
   OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
    LOCATION
    '<hdfs-uri>/hive/warehouse/testtable'

Хотите подтвердить, могу ли я переместить текстовый файл, содержащий значения идентификатора / имени, из локального в расположение HDFS /hive/warehouse/testtable/test.txt для тестовой таблицы внешней таблицы? Спасибо.

1 Ответ

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

Да.Вы можете загрузить test.txt из local в папку HDFS для внешней таблицы testtable (<hdfs-uri>/hive/warehouse/testtable).Это будет работать, даже если <hdfs-uri>/hive/warehouse/ является каталогом хранилища по умолчанию Hive.

Просто помните - для внешних таблиц (называемых Hive-управляемого ) удаление таблицыавтоматически сбросит каталог HDFS своего хранилища.Для таблицы external удаление таблицы не приведет к удалению каталога HDFS, для которого она была создана, и ее необходимо удалить как отдельную операцию.

Иллюстрация:

Here the Hive warehouse directory is hdfs:///apps/hive/warehouse

Создать таблицу

hive> CREATE EXTERNAL TABLE `testtable`(
      `id` int, 
      `name` string)
       ROW FORMAT DELIMITED 
       FIELDS TERMINATED BY ',' 
      STORED AS INPUTFORMAT 
        'org.apache.hadoop.mapred.TextInputFormat' 
      OUTPUTFORMAT 
        'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
      LOCATION 'hdfs:///apps/hive/warehouse/testtable';

Данные в test.txt

1,name-1
2,name-2
3,name-3

Загрузить данныев HDFS

hadoop fs -put test.txt hdfs:///apps/hive/warehouse/testtable

Таблица запросов

hive> select * from testtable;
1   name-1
2   name-2
3   name-3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...