Tap*_*thi 23 sql hadoop hive insert
我是新手.我已成功设置单节点hadoop集群用于开发目的,除此之外,我已经安装了hive和pig.
我在hive中创建了一个虚拟表:
create table foo (id int, name string);
Run Code Online (Sandbox Code Playgroud)
现在,我想在此表中插入数据.我可以像sql一样一次添加数据吗?请帮我一个类似的命令:
insert into foo (id, name) VALUES (12,"xyz);
Run Code Online (Sandbox Code Playgroud)
另外,我有一个csv文件,其中包含以下格式的数据:
1,name1
2,name2
..
..
..
1000,name1000
Run Code Online (Sandbox Code Playgroud)
如何将这些数据加载到虚拟表中?
Dav*_*man 26
我认为最好的方法是:
a)将数据复制到HDFS(如果它还没有)
b)在你的CSV上创建外部表格,如下所示
CREATE EXTERNAL TABLE TableName (id int, name string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION 'place in HDFS';
Run Code Online (Sandbox Code Playgroud)
c)您可以通过向其发出查询来开始使用TableName.
d)如果要将数据插入其他Hive表:
insert overwrite table finalTable select * from table name;
Run Code Online (Sandbox Code Playgroud)
没有直接的方法一次从终端插入1条记录,但是,这是一个简单的直接解决方法,我通常在我想测试时使用:
假设这t是一个至少有1条记录的表.列的类型或数量无关紧要.
INSERT INTO TABLE foo
SELECT '12', 'xyz'
FROM t
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
134473 次 |
| 最近记录: |