我在HDFS中具有以下文件夹结构:
我想使用以下架构将其加载到配置单元表中:
表“多边形”:
name|kml
file1|content of file1
file2|content of file2
file3|content of file3
如何在Hive中完成此操作?
最佳答案
据我所知,不可能仅使用Hive
。但是您当然可以使用bash
(我想这是一台Linux机器)。首先创建输入文件,例如:
#!/bin/bash
# the dir path to be passed as parameter
for file in $1/*
do echo "$(basename $file)|$(cat $file)" >> polygons.dat
done
在授予脚本执行权限之后,以以下方式运行它:
./script Polygons
现在,您将在
polygons.dat
文件中拥有所需的数据。如果是Windows计算机,则必须找出一种使用batch
脚本执行相同操作的方法(否则我将无法提供帮助)。然后使用基本的
Hive
命令进行加载,例如: hive> CREATE TABLE Polygons ( name STRING, kml STRING)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY '|'
> STORED AS TEXTFILE;
hive> LOAD DATA LOCAL INPATH 'path/polygons.dat' OVERWRITE INTO TABLE Polygons;
关于hadoop - HDFS文件夹到键值配置单元表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26355748/