Hive:使用 select 1 插入带有列的 hive 表
Posted
技术标签:
【中文标题】Hive:使用 select 1 插入带有列的 hive 表【英文标题】:Hive: Insert into hive table with column using select 1 【发布时间】:2015-03-04 06:28:05 【问题描述】:假设我有一个配置单元表 test_entry,其中列名为 entry_id。
hive> desc test_entry;
OK
entry_id int
Time taken: 0.4 seconds, Fetched: 1 row(s)
假设我需要使用select 1
(返回 1)在上表中插入一行。例如:如下所示的语法:
hive> insert into table test_entry select 1;
但我收到以下错误:
FAILED: NullPointerException null
如此有效,我想为 entry)id 插入一行,使用这样的 select 语句(不引用另一个表),其值为 1。
如何做到这一点?
【问题讨论】:
【参考方案1】:Hive 不支持您尝试执行的操作。 Hive 0.13 中引入了对基于 ORC 的表的插入。
在此之前,如果您正在执行 INSERT .. SELECT
,则必须指定 FROM 子句
一种解决方法可能是创建一个包含一行的外部表并执行以下操作
INSERT .. SELECT 1 FROM table_with_one_row
【讨论】:
这就是我害怕的。我想避免创建外部表。感谢您的回复。以上是关于Hive:使用 select 1 插入带有列的 hive 表的主要内容,如果未能解决你的问题,请参考以下文章
在 IMPALA/HIVE 中添加带有 SELECT 的新列后,旧表数据变为 NULL