hadoop - 分析 S3 上的大量 JSON 文件

标签 hadoop hive apache-pig bigdata amazon-redshift

我有大量的 json 文件,总共 >100TB,每个 json 文件压缩 10GB,每行包含一个 json 对象,它们存储在 s3 上

  1. 如果我想将 json 转换为 csv(也存储在 s3 上)以便我可以将它们直接导入到 redshift 中,使用 hadoop 编写自定义代码是唯一的选择吗?

  2. 是否可以在不将数据转换为其他格式的情况下对 json 文件进行即席查询(因为我不想在每次需要进行查询时先将它们转换为其他格式,因为源是成长)

最佳答案

最快和最简单的方法是启动一个装有 Hive 的 EMR 集群来完成这项繁重的工作。通过使用 JsonSerde,您可以轻松地将数据转换为 csv 格式。这只需要您将数据从 JSON 格式的表格插入到 CSV 格式的表格中。

可以在此处找到处理 JsonSerde 的一个很好的教程:

http://aws.amazon.com/articles/2855

还有一个很好的用于 CSV 格式的库是:

https://github.com/ogrodnek/csv-serde

EMR 集群可以是短暂的,并且只对一项工作是必需的,它也可以跨越低成本的 spot 实例。

一旦您拥有 CSV 格式,Redshift COPY 文档就足够了。

http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html

关于hadoop - 分析 S3 上的大量 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21140726/

相关文章:

python - 如何让 Jython 与 PIG 一起工作?

java - 平衡器无法在HDFS HA中工作

sql - Hive 划分同一列的数字

hadoop - 如何使用 INSERT-SELECT 查询加载具有复杂数据类型的 Hive 表

apache-pig - 带有 Apache Pig 的数据透视表

hadoop - 如何使用mapreduce查找大学的礼帽

java - hadoop节点管理器被SIGSEGV杀死

hadoop - 为什么 map reduce 对键进行排序而不是简单地将相同的键组合在一起?

security - HTTPClient从keytab登录访问hadoop jobhistory服务

java - OrcRelation不可分配给HadoopFsRelation