火花读取HDFS中的zip文件的内容

时间:2018-08-23 21:10:36

标签: scala apache-spark spark-submit spark-shell

我正在尝试从zip文件中读取数据

可以如下读取整个文本文件

val f = sc.wholeTextFiles("hdfs://")

但不知道如何读取zip文件中的文本数据

有什么可行的方法,如果可以,请告诉我。

1 个答案:

答案 0 :(得分:3)

您可以使用newAPIHadoopFile命令从zipFile创建一个RDD。

import com.cotdp.hadoop.ZipFileInputFormat
import org.apache.hadoop.io.BytesWritable
import org.apache.hadoop.io.Text
import org.apache.hadoop.mapreduce.Job

val zipFileRDD = sc.newAPIHadoopFile(
        "hdfs://tmp/sample_zip/LoanStats3a.csv.zip",
        classOf[ZipFileInputFormat],
        classOf[Text],
        classOf[BytesWritable],
        new Job().getConfiguration())
println("The file contents are: " + zipFileRDD.map(s => new String(s._2.getBytes())).first())