【问题标题】:Save file names from S3 location in an array将 S3 位置的文件名保存在数组中
【发布时间】:2021-10-11 15:37:50
【问题描述】:

我有像s3://bucket-name/folder-parquet/ 这样的 S3 位置。 我想从这个位置获取所有文件名并将其保存在一个数组中。

所以如果我们在s3://bucket-name/folder-parquet/ 有part-0000.parquet、part-0001.parquet 之类的文件,那么我的数组应该是:

array = ['part-0000.parquet','part-0001.parquet']

【问题讨论】:

    标签: scala apache-spark amazon-s3 apache-spark-sql


    【解决方案1】:

    您可以使用官方的aws sdk library或scala specific library。

    这是使用 s3-scala 库的解决方案:

      import jp.co.bizreach.s3scala.S3
      import awscala.Region
    
      implicit val region = Region.Mumbai
      implicit val s3 = S3(accessKeyId = "accessKeyId", secretAccessKey = "secretAccessKey")
      val bucketName = "bucketName"
      val folderName = "folderName" // s3 object
      val filePathList = s3.bucket(bucketName).get.keys(s"$folderName/").toList
      val fileNameList = filePathList.map(_.replace(s"$folderName/", "")).drop(1)
      println(fileNameList)
    

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 2014-12-27
      • 2017-06-26
      • 2015-04-06
      • 2014-03-31
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      相关资源
      最近更新 更多