我在HDFS中具有以下文件夹结构:

  • 多边形
  • file1.kml
  • file2.kml
  • file3.kml

  • 我想使用以下架构将其加载到配置单元表中:

    表“多边形”:
    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/

    10-10 13:34