【发布时间】:2014-05-08 18:16:46
【问题描述】:
我知道 HIVE 的基本概念。我的查询是使用外部配置/模式文件创建配置单元表。
我知道创建 hive 表的基本查询,我们在 create table 语句中传递列标题和数据类型。那不过是我们硬编码而已。
但我想创建一个 hive 表,它从外部配置文件中获取列标题和数据类型。可以在 Hive 中完成吗?即使我们应该编写 unix shell 脚本来实现它也可以,但我不确定。
下面是我的配置文件格式:
配置文件
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 文件。
如何做到这一点?
提前致谢
【问题讨论】: