当前位置: 首页 > 知识库问答 >
问题:

Scala代码不能获取s3文件

赵越
2023-03-14

我正在尝试运行一个EMR滚烫作业,Scala代码将获取位于S3 bucket中的文本文件的内容。scala.io.source库搞乱了S3路径的正确位置。

--runidfile s3://my-bucket/input.txt
val runid_path = args("runidfile")
val runid = Source.fromFile(runid_path).getLines().mkString

对此有什么解决办法或变通办法吗?我尝试使用source.fromurl,但是S3不是一个有效的协议,所以它不接受它。

共有1个答案

宇文修文
2023-03-14

scala.io.source库不是用来直接从Amazon S3访问文件的。你需要另一个图书馆。

您可以使用offical Amazon S3 Java库。下面是一些示例代码(从这个问题及其答案中一起复制而来)

val credentials = new BasicAWSCredentials("myKey", "mySecretKey")
val s3Client = new AmazonS3Client(credentials)
val s3Object = s3Client.getObject(new GetObjectRequest("my-bucket", "input.txt"))
val myData = Source.fromInputStream(s3Object.getObjectContent())

val runid = myData.getLines().mkString
 类似资料:
  • 问题内容: 我试图从AWS s3读取文件到Java代码: 然后我得到一个错误: java.io.FileNotFoundException:s3n:/mybucket/myfile.txt(无此类文件或目录)位于java.io.FileInputStream.open(本地方法)处java.io.FileInputStream。(FileInputStream.java:146) 有没有办法从AW

  • 我不明白为什么Spring AWS Cloud代码找不到我的S3文件。我的springbeanxml配置中有“aws-context:context-resource-loader”。我本以为“s3:”资源的使用会像spring一样无缝,因为“classpath:”资源很容易使用。 我知道 AWS 权限和凭证配置正确,因为如果我直接使用 AmazonS3Client,我可以检索有问题的文件。 从S

  • 我们采用GitLab作为项目代码释放平台,所有仓库源码及更新获取都需通过GitLab同步。 gitlab代码入口为:https://gitlab.com/nationalchip/vsp_sdk 一、注册GitLab账号 GitLab登录链接 GitLab账号注册可能需要翻墙,所以不能打开注册链接的,我们建议通过GitHab账号登录。 GitHub注册链接 没有GitHub账号的话,先通过下面链接

  • 参考快速上手指南的代码获取章节: gitlab代码获取章节

  • 有两种途径获取: 代码托管到阿里云[https://code.aliyun.com/]上,需要去注册一个账号,把账号告知我们的FAE,我们给你释放 pull code 的权限。

  • 3.4. 获取代码 以下命令会创建一个go目录。切换到相应目录,并且确保当前位置不存在go目录,运行命令: $ hg clone -r release https://go.googlecode.com/hg/ go