从EMR Spark在s3 gzip文件中工作的高效方法

时间:2017-05-07 08:51:47

标签: apache-spark pyspark emr amazon-emr pyspark-sql

我在S3中有一个10GB的gzip压缩文件,需要在EMR Spark中处理。 我需要加载它,做一个完整的外连接并将它写回S3。 我完全外部连接的数据是我认为保存为镶木地板的目标数据集。

我之前无法拼接输入文件(因为它来自第三方),并且只能将压缩更改为bz2。

有任何建议如何使输入文件的使用过程最有效? 目前只使用spark.read.csv需要很长时间并且只运行一个任务,因此无法分发。

2 个答案:

答案 0 :(得分:1)

使第1步单个工作者在文件中读取操作&在进行连接之前,将其写回为snappy加密的镶木地板。一旦它被写成这样,你就有了一个可以分割出来的格式。

答案 1 :(得分:0)

我建议在与存储区相同的区域中启动EC2实例,下载10GB文件,解压缩并将其上传回S3。使用aws-cli这应该只需要大约15分钟。 例如:

aws s3 sync s3://bucket_name/file.txt.gz .;

gunzip file.txt.gz;

aws s3 sync file.txt s3://bucket_name/;