将HIVE导出为CSV

ole*_*ber 8 csv hive libreoffice

我在HIVE中有一些数据,我想在LibreOffice中看到它.

如何导出此数据,然后将其导入Libreoffice

小智 21

基于https://issues.apache.org/jira/browse/HIVE-1603:

$ hive
hive> set hive.exec.compress.output=false;
hive> create table csv_dump ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' as
hive> select ...YOUR_SELECT_QUERY_HERE...;
$ hadoop dfs -cat /user/hive/warehouse/csv_dump/* > ~/csv_dump.csv
Run Code Online (Sandbox Code Playgroud)


Iva*_*ass 0

您可以通过 Hive SerDe 机制指定和自定义如何存储表。感谢GitHub 上的ogrodnek用户,有CSV SerDe实现。

它是一种过时的(hive 0.5),但可以很容易地采用新的 hive 版本。为了成功,我所要做的就是将构建配置更改为我的 hive 发行版和版本(我在kunkunur的 pull request 中使用 pom.xml 作为 maven)并将此行添加到CSVSerde.java中以满足新的 API:

import org.apache.hadoop.hive.serde2.SerDeStats;
....
....
@Override
public SerDeStats getSerDeStats() {
// no support for statistics
return null;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以运行hadoop dfs -get /table/or/partition/location /local/destination(或者甚至使用带有管道或单个文件输出的 -cat)从 hadoop 加载数据 - 它将已经是 CSV 格式。