使用Spark或AWS服务读取ZIP文件

时间:2019-06-08 07:43:16

标签: amazon-web-services apache-spark amazon-s3 aws-lambda

我必须阅读在s3上载的压缩文件。

功能:在s3上上传任何文件时,将触发lambda,从而触发火花作业。

我应该在哪里通过AWS Lambda或通过Apache Spark读取文件?哪一个是有益的? 我应该如何读取Spark中的压缩文件?

1 个答案:

答案 0 :(得分:0)

您问了多个问题。因此,我尝试回答您的每个问题。

  

我需要在哪里阅读:通过lambda或通过spark,哪一个是有益的?

您可以让s3触发lambda,而让lambda触发EMR火花。

这里有很多适合您的例子

  

我应该如何读取Spark中的压缩文件?

首先,哪种压缩文件?压缩类型支持Spark和Hadoop

name    | ext      | codec class
-------------------------------------------------------------
bzip2   | .bz2     | org.apache.hadoop.io.compress.BZip2Codec 
default | .deflate | org.apache.hadoop.io.compress.DefaultCodec 
deflate | .deflate | org.apache.hadoop.io.compress.DeflateCodec 
gzip    | .gz      | org.apache.hadoop.io.compress.GzipCodec 
lz4     | .lz4     | org.apache.hadoop.io.compress.Lz4Codec 
snappy  | .snappy  | org.apache.hadoop.io.compress.SnappyCodec

如果支持压缩类型,则可以通过以下示例代码读取压缩文件。

rdd = sc.textFile("s3://bucket/project/logfilexxxxx.*.gz")