【发布时间】:2015-12-13 17:17:51
【问题描述】:
我正在尝试运行 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 路径中的“//”,我收到错误:
原因:java.io.FileNotFoundException: s3:/my-bucket/input.txt(没有这样的文件或目录)
在 java.io.FileInputStream.open(本机方法)
在 java.io.FileInputStream.(FileInputStream.java:146)
在 scala.io.Source$.fromFile(Source.scala:90)
在 scala.io.Source$.fromFile(Source.scala:75)
在 scala.io.Source$.fromFile(Source.scala:53)
在 com.move.scalding.userEvents.RecommenderValidator.(RecommenderValidator.scala:37)
是否有任何解决方案或解决方法?我尝试使用Source.fromURL,但 S3 不是有效协议,因此它不接受它。
【问题讨论】:
标签: scala amazon-web-services amazon-s3