我是新手。我只是想知道如何直接将数据插入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中使用上述等效语句?
答案 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);