我想基于文件名中存在的时间戳来加载文件。这些文件位于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()
}
}