我知道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文件。
如何做到这一点?
提前致谢
答案 0 :(得分:0)
将config.txt更改为标准hql文件非常方便,使用map将config.txt中的类型转换为hive列类型,例如integer to int,char to string。