将数据插入配置单元表

khbbv19g  于 2021-06-04  发布在  Hadoop
关注(0)|答案(6)|浏览(470)

使用cygwin发行版,我安装了hadoop0.20.3和hive0.11.0。
首先,我不知道如何使用hive cli:

hive> show tables;

然后进去什么也没发生。我可以使用 hive -e/-f. 然后,我创建了一个表:

CREATE TABLE tweet_table(
tweet STRING
)
COMMENT 'Table of string'

但是我怎样才能在这个表中插入数据呢?我看到一些 INSERT INTO 但当我尝试时:

INSERT INTO TABLE tweet_table (tweet) VALUES ("data")

我有个错误:

FAILED: ParseException line 1:30 cannot recognize input near '(' 'tweet' ')' in select clause

如何在表中追加数据?

xggvc2p6

xggvc2p61#

您可以通过两种方式向表中插入新数据。
使用load命令将文件的数据加载到表中。

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename.

您可以使用select查询将新数据插入表中。

INSERT INTO table tablename1 select columnlist FROM secondtable;
2q5ifsrm

2q5ifsrm2#

尝试将其与数据中的单引号一起使用:

insert into table test_hive values ('1','puneet');
eit6fx6z

eit6fx6z3#

如果表没有分区,那么代码将是,
插入表格 table_name 从中选择列a、列b、列c another_table(source table) --这里可以应用任何条件,如限制、分组方式、排序方式等。。。
如果表带有分区,那么代码将是,
设置hive.exec.dynamic.partition=true;
设置hive.exec.dynamic.partition.mode=nonstrict;
插入表格 table_name 隔板( partition_col1 , paritition_col2 )从中选择列a、列b、列c、分区列1、分区列2 another_table(source table) --这里可以应用任何条件,如限制、分组方式、排序方式等。。。

6qfn3psc

6qfn3psc4#

如果已经有一个表预加载了一些数据。您可以使用以下查询技巧将数据加载到表中

INSERT INTO TABLE tweet_table 
  SELECT  "my_data" AS my_column 
    FROM   pre_loaded_tbl 
   LIMIT   5;

另外请注意,“我的数据”独立于预加载的\u tbl中的任何数据。您可以选择任何数据并写入任何列名(这里是“我的数据”和“我的列”)。配置单元不要求它具有相同的列名。但是select语句的结构应该和tweet表的结构相同。您可以使用limit来确定可以插入tweet表的次数。
但是,如果您还没有创建任何表,则必须使用上述答案中的文件复制或加载数据命令来加载数据。

aiazj4mn

aiazj4mn5#

我也遇到了类似的问题,所以我使用impala将单行插入到表中,并对同一个查询起作用。这肯定管用。

pgccezyw

pgccezyw6#

尽管有一个公认的答案,但我想补充一点,从hive0.14开始,记录级操作是允许的。正确的语法和查询是:

INSERT INTO TABLE tweet_table VALUES ('data');

相关问题