首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Scala/Spark在Amazon S3中列出对象

通过Scala/Spark在Amazon S3中列出对象
EN

Stack Overflow用户
提问于 2018-05-22 14:31:42
回答 1查看 2.1K关注 0票数 1

我正在尝试使用S3在亚马逊的S3FileSystem桶中获取对象列表。

代码语言:javascript
复制
val exists = s3FS.exists(new org.apache.hadoop.fs.Path("s3n://bucketname/Daily/DailyCash.TXT"))
println(exists)
val sels=s3FS.listFiles(new org.apache.hadoop.fs.Path("s3n://bucketname//Daily"),true)
println(sels)

获取以下错误:

代码语言:javascript
复制
Exception in thread "main" java.io.FileNotFoundException: File s3n://bucketname/ does not exist.
 at org.apache.hadoop.fs.s3.S3FileSystem.listStatus(S3FileSystem.java:194)
 at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1482)
 at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1522)
 at org.apache.hadoop.fs.FileSystem$4.<init>(FileSystem.java:1798)
 at org.apache.hadoop.fs.FileSystem.listLocatedStatus(FileSystem.java:1797)
 at org.apache.hadoop.fs.FileSystem.listLocatedStatus(FileSystem.java:1780)
 at org.apache.hadoop.fs.FileSystem$5.<init>(FileSystem.java:1842)
 at org.apache.hadoop.fs.FileSystem.listFiles(FileSystem.java:1839)
EN

回答 1

Stack Overflow用户

发布于 2020-09-24 13:48:14

我会用AWS来做类似的事情,而不是混合和匹配Hadoop类,并且只用于列出对象,而不是建议加载巨大的数据集。

代码语言:javascript
复制
import com.amazonaws.auth.DefaultAWSCredentialsProviderChain
import com.amazonaws.services.s3.{AmazonS3Client, AmazonS3URI}

val location = "s3://bucketname/Daily/DailyCash.TXT"

val awsCredentials = new DefaultAWSCredentialsProviderChain()
val s3Client = new AmazonS3Client(awsCredentials)
val s3Uri = new AmazonS3URI(location)

val objects: ObjectListing = s3Client.listObjects(s3Uri.getBucket)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50470304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档