2017-02-14 70 views
-2

文件到亚马逊S3存储AWS这是我的代码部分:编写使用Scala的

val file=new File("s3a://tracce/output/Tempi.txt") 
    val writer=new BufferedWriter(new FileWriter(file,true)) 
    writer.write("Execution Time trace "+count.toString+"x"+i.toString+": "+differenza.toString) 
    writer.newLine() 
    writer.flush() 
    writer.close() 

我需要写一个新的文件到使用Scala的我的桶。 我得到这个错误:

Exception in thread "main" java.io.FileNotFoundException:  s3:/tracce/output/Tempi.txt (No such file or directory) 

当我尝试它保存到本地,它的工作原理:

val file=new File("./Tempi.txt") 

我怎么能解决呢? 在此先感谢

+2

有一点让我觉得这个很容易 – Tyler

+0

我认为这是一个AWS的Java SDK你在找什么https://www.cloudera.com/documentation/enterprise/5-5-x/topics/spark_s3.html – GameOfThrows

+0

它适用于RDD,我需要写一个简单的字符串 –

回答

0

S3是一个对象存储,您不能写入字符串。您可以将字符串写入本地文件并定期将文件上传到S3。

0

S3A是一个Hadoop文件系统客户端,您不能使用java File API来使用它。

  1. 创建一个hadoop Configuration对象,其中包含所有s3证书。你可以免费获得SparkContext
  2. 使用Hadoop的FS API来获取FS实例,创建()来创建一个文件时,它

    val fs = FileSystem.get(new URI("s3a://trace/output/Tempi.txt"), conf) 
    val out = fs.create("/output/Tempi.txt", true) 
    out.write(/* your string as bytes */) 
    out.close()