使用配置文件创建配置表

时间:2014-05-07 05:27:58

标签: hadoop hive

我知道HIVE的基本概念。我的查询是使用外部配置/模式文件创建配置单元表。

我知道创建hive表的基本查询,我们在create table语句中传递列标题和数据类型。这只不过是我们硬代码。

但是我想创建一个hive表,它从外部配置文件中获取列标题和数据类型。可以在Hive中完成吗?即使我们应该编写unix shell脚本来实现它也没关系,但我不确定。

以下是我的配置文件的格式:

CONFIG.TXT

    id,Integer(2),NOT NULL
    name,String(20)
    state,String(5),NOT NULL
    phone_no,Integer(4)
    gender,Char(1)

截至目前,我创建了一个.hql文件,其中我编写了hive create table语句脚本并在bash脚本文件中调用.hql文件。

以下是.hql文件和.sh文件:

hiveQ.hql:

    create table goodrecs(
    id int,
    name string,
    state string,
    phone_no int,
    gender string) row format delimited fields terminated by ',' stored as textfile;
    LOAD DATA INPATH '/user/hduser/Dataparse/goodrec' INTO TABLE goodrecs;

testscript.sh:

    #!/bin/bash
    hive -f hiveQ.hql

在hiveQ.hql中,我希望列标题和数据类型应来自config.txt文件。

如何做到这一点?

提前致谢

1 个答案:

答案 0 :(得分:0)

将config.txt更改为标准hql文件非常方便,使用map将config.txt中的类型转换为hive列​​类型,例如integer to int,char to string。