将HIVE导出为CSV

时间:2012-08-16 13:40:14

标签: csv hive libreoffice

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

我有类似的问题,这就是我能够解决的问题。

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

  

DROP TABLE IF EXISTS TestHiveTableCSV;   CREATE TABLE TestHiveTableCSV行格式删除字段由','终止线路终止于' \ n'如   SELECT列表FROM TestHiveTable;

步骤2 - 将hb仓库中的blob复制到具有适当扩展名的新位置

  

Start-AzureStorageBlobCopy -DestContext $destContext   -SrcContainer" Source Container" -SrcBlob "hive/warehouse/TestHiveTableCSV/000000_0"   -DestContainer" Destination Container" `   -DestBlob" CSV / TestHiveTable.csv"

希望这有帮助!

最诚挚的问候, Dattatrey Sindol(达塔) http://dattatreysindol.com

答案 2 :(得分:0)

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

这是一种过时的(hive 0.5),但可以很容易地用于新的hive版本。 所有我必须做的就是成功 - 只需将构建配置更改为我的hive发行版和版本(我在 kunkunur 的拉取请求中使用了pom.xml for 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格式。