【问题标题】:Creating hive table using configuration file使用配置文件创建 hive 表
【发布时间】: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 文件。

如何做到这一点?

提前致谢

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

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

    【讨论】:

    • 嗨,我没有将 config.txt 更改为 .hql 文件,然后使用地图。你能详细说明一下吗?
    • 这个任务必须写一个脚本,没办法直接使用hive
    • 是的,编写脚本是一个更好的选择,但我不知道如何开始,甚至无法想象脚本将如何与 hive shell 对话以创建表。
    猜你喜欢
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 2015-07-22
    相关资源
    最近更新 更多