Спарк читать содержимое zip файла в HDFS

Я пытаюсь прочитать данные из zip-файла

можно прочитать весь текстовый файл, как показано ниже

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

но не знаю, как читать текстовые данные внутри zip файла

Есть ли какой-нибудь возможный способ сделать это, если да, пожалуйста, дайте мне знать.

1 ответ

Решение

Вы можете создать RDD из zipFile с помощью команды newAPIHadoopFile.

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())
Другие вопросы по тегам