8

我在 HIVE 中有一些数据,我想在 LibreOffice 中查看。

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

4

3 回答 3

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
于 2012-12-18T19:52:02.017 回答
1

我有一个类似的问题,这就是我能够解决它的方法。

第 1 步 - 将 hive 表中的数据加载到另一个表中,如下所示

如果存在则删除表 TestHiveTableCSV;CREATE TABLE TestHiveTableCSV ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' AS SELECT Column List FROM TestHiveTable;

第 2 步 - 将 blob 从 hive 仓库复制到具有适当扩展名的新位置

Start-AzureStorageBlobCopy -DestContext $destContext -SrcContainer“源容器” -SrcBlob "hive/warehouse/TestHiveTableCSV/000000_0" -DestContainer“目标容器”`-DestBlob“CSV/TestHiveTable.csv”

希望这可以帮助!

最好的问候, Dattatrey Sindol (Datta) http://dattatreysindol.com

于 2014-05-29T14:41:12.180 回答
0

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

它是一种过时的(hive 0.5),但可以很容易地被新的 hive 版本采用。为了成功,我要做的就是将构建配置更改为我的配置单元分布和版本(我在kunkunur的拉取请求中将 pom.xml 用于 maven)并将这些行添加到CSVSerde.java以满足新的 API:

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

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

于 2012-09-25T05:11:37.883 回答