我必须阅读在s3上载的压缩文件。
功能:在s3上上传任何文件时,将触发lambda,从而触发火花作业。
我应该在哪里通过AWS Lambda或通过Apache Spark读取文件?哪一个是有益的? 我应该如何读取Spark中的压缩文件?
答案 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")