hdfs文件夹中的键值配置单元表

dy2hfwbg  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(329)

我在hdfs中有以下文件夹结构:
多边形
文件1.kml
文件2.kml
文件3.kml
我想用以下模式将其加载到配置单元表中:
表“多边形”:

name|kml
file1|content of file1
file2|content of file2
file3|content of file3

在 hive 里怎么做?

cvxl0en2

cvxl0en21#

据我所知,仅仅使用 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;
5f0d552i

5f0d552i2#

您可以使用输入文件名,它是配置单元中存储文件名的虚拟列
有关此虚拟列的详细信息,请查看此链接。
您可以将数据加载到表中,然后在select查询中使用input\ U file\ U name获取文件名。
例如。,

select INPUT__FILE__NAME,your_column from your_table;

相关问题