2017-02-14 75 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()