Scala代码无法获取s3文件
我正在尝试运行EMR烫伤工作,并且
Scala代码假定要获取位于S3存储桶中的文本文件的内容. scala.io.source库搞乱了S3路径的正确位置.
我将参数runidfile提供给EMR作业: --runidfile s3://my-bucket/input.txt scala代码执行以下操作: val runid_path = args("runidfile") val runid = Source.fromFile(runid_path).getLines().mkString 代码以某种方式不接受S3路径中的“//”,我收到一个错误:
这有什么解决方案或解决方法吗?我尝试使用Source.fromURL,但S3不是有效的协议,所以它不接受它. 解决方法
scala.io.Source库无意直接从Amazon S3访问文件.你需要另一个库.
您可以使用官方Amazon S3 Java Library.这是一些示例代码(从this question and its answers复制) 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |