Улей: невозможно вставить в таблицу со столбцом карты - PullRequest
0 голосов
/ 01 марта 2019

вот моя таблица

hive> desc test_tab;
OK
test_map    map<string,string>
test_date               string

# Partition Information
# col_name              data_type               comment

test_date               string
Time taken: 0.087 seconds, Fetched: 7 row(s)

, а вот моя инструкция вставки

hive> insert into table test_tab
    > values ('2018-02-28', map("key","val"));

но я получаю

FAILED: ParseException line 2:0 cannot recognize input near 'values' '(' ''2018-02-28'' in select clause

Я также пытался

hive> insert into table test_tab partition (test_date = '2018-02-28')
    > select  map("key","val");
FAILED: NullPointerException null

что я делаю не так?

Вот информация о версии улья

Hive 0.13.1-SNAPSHOT

1 Ответ

0 голосов
/ 02 марта 2019

Вы можете загрузить данные в таблицу кустов двумя способами* Использование команды HDFS:Структура вашей таблицы должна быть MAP KEYS TERMINATED BY '=' (Любой разделитель)

CREATE TABLE `test_sample`(
  `test_map` map<string,string>   
)
PARTITIONED BY (
  `test_date ` string)
ROW FORMAT DELIMITED
  FIELDS TERMINATED BY ','
  MAP KEYS TERMINATED BY '='
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'

sample input.txtФев = 28

hadoop fs -put input.txt HDFS_dest_Path

Как только вы загрузите файл в Hadoop fs, затем загрузите данные в таблицу:

load data inpath <location of the hadoop table> into table test_sample partition(test_date='2019-02-28');
  • Использование запросов:

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

INSERT INTO TABLE test_tab PARTITION(test_date= '2019-02-28')
select map from  test_sample;

ПРИМЕЧАНИЕ. Ограничение MAP KEYS TERMINATED BY '=' не обязательно требуется для test_tabтаблица.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...