【问题标题】:Export HIVE to a CSV将 HIVE 导出为 CSV
【发布时间】:2012-08-12 21:04:58
【问题描述】:

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

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

【问题讨论】:

  • 欢迎来到 StackOverflow!到目前为止,您尝试了什么?您目前的方法遇到了什么困难?
  • 我创建了 perl 脚本:使用 Text::CSV;我的 $csv = Text::CSV->new() 或死“不能使用 CSV:”.Text::CSV->error_diag (); $csv->eol ("\r\n");而(我的 $line = readline){ chomp $line;我的@cols = split /\x01/, $line; $csv->print(*STDOUT, \@cols ); }

标签: csv hive libreoffice


【解决方案1】:

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

这是一种过时的(hive 0.5),但可以很容易地被新的 hive 版本采用。 为了成功,我要做的就是将构建配置更改为我的 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格式了。

【讨论】:

    【解决方案2】:

    基于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
    

    【讨论】:

    • 最后一个命令现在已弃用。等效的新命令几乎相同 - “hadoop fs -cat /user/hive/warehouse/csv_dump/* > ~/csv_dump.csv”。关键点是 hadoop 将 hive 表映射到 fs 命名空间 /user/hive/warehouse。
    【解决方案3】:

    我遇到了类似的问题,这就是我能够解决的方法。

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

    如果存在则删除表 TestHiveTableCSV; CREATE TABLE TestHiveTableCSV 行格式分隔字段以 ',' 结尾的行以 '\n' 作为 从 TestHiveTable 中选择列列表;

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

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

    希望这会有所帮助!

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

    【讨论】:

      猜你喜欢
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 2015-12-12
      • 2010-11-03
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多