【问题标题】:Is there a way to change the default delimiter of hive query有没有办法更改配置单元查询的默认分隔符
【发布时间】:2019-02-07 16:42:19
【问题描述】:

我们通过putty访问hive,结果会以空格分隔的列显示(\001)

如果数据为空并且表中的列数很大,那么很难确定哪些列是空的。

是否有一个 hive 属性可以将分隔符更改为其他字符。

目前我正在使用 concat 函数添加分隔符,但想知道是否有简单的方法。

【问题讨论】:

    标签: hive header hiveql delimiter


    【解决方案1】:

    如果使用FIELED TERMINATED BY 属性指定,CTAS(将表创建为选择)和 Insert Select 语句可以使用不同的分隔符将文件写入您的系统。

    insert overwrite local directory './test' 
    row format delimited 
    FIELDS TERMINATED BY ',' 
    select * from src ;
    

    如果您想在 Hive CLI 上执行此操作并将数据写入那里的文件,那么您可以使用sed。例如。

    hive -e 'select * from my_table' | sed 's/[\t]/,/g'  > output.txt
    

    Hive 有同样的 JIRA 问题,现在已关闭,但描述有很好的有用信息。 https://issues.apache.org/jira/browse/HIVE-3682

    这是来自文档的有用资源链接: Writing data to File

    【讨论】:

    • 谢谢,但我的问题不同,这在我们将数据集复制到文件时会有所帮助,当我们想从表中导出数据时,我现在正在这样做。
    • 我们使用 putty 访问 hive,如果我们查询一个表,我们会得到用空格分隔的列,是否有任何 hive 属性或替代方法,我们可以尝试将其更改为其他一些 dellmiter
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 2023-02-06
    • 2017-10-11
    • 1970-01-01
    相关资源
    最近更新 更多