Спарк читать содержимое 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())