3

我在 hive 中创建了一个表。

create table demo(no int, name string)

INSERT demo values (1,'haris')

但是当我在该表中插入值时,它显示以下错误。

FAILED: Parse Error: line 2:0 mismatched input 'INSERT' expecting EOF near ')'

并尝试了这个

INSERT OVERWRITE TABLE demo
PARTITION (no = 1, name = 'Hana')

FAILED: Parse Error: line 4:0 cannot recognize input near 'PARTITION' '(' 'country' in select clause

有任何1请帮助我吗?我怎样才能在蜂巢中插入。如果可能,请告诉我有关外部文件的信息?

4

1 回答 1

2

做这个 :

hive> LOAD DATA INPATH '/path_of_the_file_to_insert' INTO TABLE demo;

外部文件是指外部表吗?请正确格式化您的问题,以便正确显示。谢谢你。


回应您的评论:

Hive 不提供记录级插入。您可以从查询生成新表或将查询结果输出到文件。所以我不认为像

insert into table_name (id, name) VALUES (12,"xyz);

是可能的。

当您谈论 Hive 中的插入时,您有 2 个选项:

Loading files into tables
Inserting data into Hive Tables from queries

加载操作只是将数据文件移动到与 Hive 表对应的位置的复制/移动操作,插入意味着使用插入子句将数据插入表中。

LOAD 的语法:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]

例子 :

LOAD DATA INPATH '/path/to/file/test.csv' INTO TABLE table_name;

INSERT 的语法:

INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement;

例子 :

INSERT OVERWRITE TABLE table2 SELECT * FROM table1;

外部表:

外部表就像 Hive 中的任何其他表一样,除了在外部表中您自己控制数据的创建和删除。外部数据的位置在表创建时指定。基本文件不会被复制到 Hive 表目录中。

CREATE EXTERNAL TABLE external_table (dummy STRING) LOCATION '/user/tom/external_table';
LOAD DATA INPATH '/user/tom/data.txt' INTO TABLE external_table;

高温高压

于 2013-06-11T12:41:25.987 回答