使用配置文件创建配置单元表

p8h8hvxi  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(438)

我知道Hive的基本概念。我的查询是使用外部配置/架构文件创建配置单元表。
我知道创建配置单元表的基本查询,我们在CREATETABLE语句中传递列标题和数据类型。这只是我们硬编码。
但是我想创建一个配置单元表,它从外部配置文件中获取列标题和数据类型。能在 hive 里做吗?即使我们应该编写unixshell脚本来实现它也没关系,但我不确定。
以下是我的配置文件的格式:
配置.txt

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

到目前为止,我已经创建了一个.hql文件,其中我编写了hivecreatetable语句脚本,并在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文件。
如何做到这一点?
提前谢谢

eqqqjvef

eqqqjvef1#

将config.txt更改为标准hql文件非常方便,可以使用一个Map,将config.txt中的类型转换为配置单元列类型,例如integer到int,char到string。

相关问题