【发布时间】:2019-02-07 16:42:19
【问题描述】:
我们通过putty访问hive,结果会以空格分隔的列显示(\001)
如果数据为空并且表中的列数很大,那么很难确定哪些列是空的。
是否有一个 hive 属性可以将分隔符更改为其他字符。
目前我正在使用 concat 函数添加分隔符,但想知道是否有简单的方法。
【问题讨论】:
标签: hive header hiveql delimiter
我们通过putty访问hive,结果会以空格分隔的列显示(\001)
如果数据为空并且表中的列数很大,那么很难确定哪些列是空的。
是否有一个 hive 属性可以将分隔符更改为其他字符。
目前我正在使用 concat 函数添加分隔符,但想知道是否有简单的方法。
【问题讨论】:
标签: hive header hiveql delimiter
如果使用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
【讨论】: