我在S3中有一个10GB的gzip压缩文件,需要在EMR Spark中处理。 我需要加载它,做一个完整的外连接并将它写回S3。 我完全外部连接的数据是我认为保存为镶木地板的目标数据集。
我之前无法拼接输入文件(因为它来自第三方),并且只能将压缩更改为bz2。
有任何建议如何使输入文件的使用过程最有效? 目前只使用spark.read.csv需要很长时间并且只运行一个任务,因此无法分发。
答案 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/;