使用scala spark从s3桶读取zip文件

时间:2017-01-27 11:09:44

标签: scala amazon-web-services apache-spark amazon-s3

尝试获取并读取上传到aws s3存储桶中的zip文件中的文本文件

我试过的代码

var ZipFileList = spark.sparkContext.binaryFiles(/path/);

   var unit =  ZipFileList.flatMap {
        case (zipFilePath, zipContent) =>
          {
          val zipInputStream = new ZipInputStream(zipContent.open())

          val zipEntry = zipInputStream.getNextEntry()
          println(zipEntry.getName)
          }
      }

但它会出现错误需要的单位traversableOnce

 val files = spark.sparkContext.wholeTextFiles(/path/))
    files.flatMap({case (name, content) =>
      unzip(content) //gives error "type mismatch; found : Unit required: scala.collection.GenTraversableOnce[?]" 
    })

有没有其他方法可以读取zip文件中的文件内容... zip文件包含.json文件,我想实现的是读取和解析所有这些文件

1 个答案:

答案 0 :(得分:0)

你实际上并没有在unzip()命令中返回数据,是吗?我认为这是问题的一部分