如何将直接值插入配置单元表?

时间:2014-02-28 14:56:08

标签: sql hadoop insert hive

我是新手。我只是想知道如何直接将数据插入Hive表

Create table t1 ( name string)

and I want to insert a value eg name = 'John'

但是我看到很多文档没有任何将数据直接插入表中的示例。要么我需要在内部或外部创建文件并添加值'John'并将此数据加载到表中,或者我可以从另一个表加载数据。

我的目标是直接通过提供值将数据直接添加到配置单元表中?我提供了一个我希望实现的SQL查询的oracle示例:

INSERT INTO t1 (name)
values ('John')

我想在Hive中使用上述等效语句?

3 个答案:

答案 0 :(得分:2)

您可以使用hive的表生成函数,例如exlode()或stack()

实施例

表结构为(名称字符串,年龄为Int)

INSERT INTO TABLE target_table
SELECT STACK(
    2,                 # Amount of record
    'John', 80,        # record 1
    'Bill', 61         # record 2
    ) 
FROM dual              # Any table already exists
LIMIT 2;               # Amount of record! Have to add this line!

这会在你的target_table中添加2条记录。

答案 1 :(得分:1)

从最新版本的Hive开始,不支持insert into .. values (...)。插入/更新/删除语法的增强功​​能正在开发中。请查看Implement insert, update, and delete in Hive with full ACID support

答案 2 :(得分:1)

现在,Hive 0.14版本的HIVE支持将值插入表中。

CREATE TABLE students (name VARCHAR(64), age INT, gpa DECIMAL(3, 2)) CLUSTERED BY (age) INTO 2 BUCKETS STORED AS ORC;

INSERT INTO TABLE students VALUES ('fred flintstone', 35, 1.28), ('barney rubble', 32, 2.32);

更多信息可以在https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-InsertingvaluesintotablesfromSQL

找到