Spark 2.2.0-如何从EC2列出S3存储桶中的文件

时间:2018-06-28 01:29:59

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

我想基于文件名中存在的时间戳来加载文件。这些文件位于S3存储桶中。当我在本地运行脚本(从本地文件夹读取)时,它可以正常工作。当我在EC2上运行它以尝试访问S3存储桶时,java.io.File.listFiles返回一个空数组。

我想念什么?

import main.scala.util.Util._
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
import scala.collection.Seq
import org.apache.spark.sql.types.StringType



object Test {

  def main(args: Array[String]) {

    val spark = SparkSession.builder().getOrCreate()
    import spark.implicits._

    val path = "s3://my-bucket/subbucket/"

    val now: String = extractDate("2017-01-12").toString

    var files = new java.io.File(path)
           .listFiles
           .filter(p => date_filter(p,now))
           .map(path+_.getName)
           .toSeq

    val df = spark.read.csv(files:_*)

    df.show()

  }
}

0 个答案:

没有答案