使用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
如何在表中追加数据?
6条答案
按热度按时间xggvc2p61#
您可以通过两种方式向表中插入新数据。
使用load命令将文件的数据加载到表中。
您可以使用select查询将新数据插入表中。
2q5ifsrm2#
尝试将其与数据中的单引号一起使用:
eit6fx6z3#
如果表没有分区,那么代码将是,
插入表格
table_name
从中选择列a、列b、列canother_table(source table)
--这里可以应用任何条件,如限制、分组方式、排序方式等。。。如果表带有分区,那么代码将是,
设置hive.exec.dynamic.partition=true;
设置hive.exec.dynamic.partition.mode=nonstrict;
插入表格
table_name
隔板(partition_col1
,paritition_col2
)从中选择列a、列b、列c、分区列1、分区列2another_table(source table)
--这里可以应用任何条件,如限制、分组方式、排序方式等。。。6qfn3psc4#
如果已经有一个表预加载了一些数据。您可以使用以下查询技巧将数据加载到表中
另外请注意,“我的数据”独立于预加载的\u tbl中的任何数据。您可以选择任何数据并写入任何列名(这里是“我的数据”和“我的列”)。配置单元不要求它具有相同的列名。但是select语句的结构应该和tweet表的结构相同。您可以使用limit来确定可以插入tweet表的次数。
但是,如果您还没有创建任何表,则必须使用上述答案中的文件复制或加载数据命令来加载数据。
aiazj4mn5#
我也遇到了类似的问题,所以我使用impala将单行插入到表中,并对同一个查询起作用。这肯定管用。
pgccezyw6#
尽管有一个公认的答案,但我想补充一点,从hive0.14开始,记录级操作是允许的。正确的语法和查询是: