2016-03-28 3 views
-1

printlnで何かを得ることを望みますが、AWSを使用すると動作しない場合があります。「saveAsTextFile」を使用してprintlnの内容をAWS上のファイルとして保存するにはどうすればよいですか? printlnの 元のコンテンツは以下の通りです:AWSでsaveAsTextFileを使用するには?

println("\n[ First output is ]") 
output1.foreach(a => println("(" + a +"," + titles(a - 1) + ")")); 
println("\n[ Second output us ]") 
output2.foreach(a => println("(" + a +"," + titles(a - 1) + ")")); 

OUTPUT1とOUTPUT2は、数字で構成された両方のリストです。タイトルもリストです。おかげさまで

+1

についての重要な事柄を理解して役立つかもしれない、このブログを読んですることをお勧めいたします。 「AWSを使用する」とは、EC2インスタンスでコードを実行していて、インスタンスストレージに保存したいということですか? S3ストレージに何かを保存していますか? – childofsoong

+0

私はあなたの質問にAWSについて何も特定していません。 –

+0

ローカルマシンの場合は、コマンドラインで> output.txtを使用してコンテンツを出力することはできますが、AWS EC2で実行すると、まだ動作していますか? AWS EC2上で実行されている場合は、印刷コンテンツをファイルに保存することを願っています。 – cacao

答えて

0

両方ともListの場合は、の方法parallelizeを使用してRDDに変換することができます。この後

val rdd1 = sc.parallelize(List("[ First output is ]") ++ output1.map(a => "(" + a + "," + titles(a - 1) + ")")) 
val rdd2 = sc.parallelize(List("[ Second output is ]") ++ output2.map(a => "(" + a + "," + titles(a - 1) + ")")) 

ご希望のS3パスで、saveAsTextFileを使用することができます。

rdd1.saveAsTextFile("s3://yourAccessKey:[email protected]/out1.txt") 
rdd2.saveAsTextFile("s3://yourAccessKey:[email protected]/out2.txt") 

私はそれはあなたが私はあなたが求めているもの見当がつかないS3Apache-SparkWriting s3 data with Apache Spark

+0

この例の "println(" \ n [最初の出力は] ")"をファイルに書き込むことはできますか?ありがとう。 – cacao

+0

自分で説明しましょう。各行を1つのRDDエントリに変換するので、その行をリストに追加して追加することができます。事は、RDD *が一貫している傾向があることです。つまり、それらはすべてのエントリーに同じ構造を持っています。 –

+0

別々に保存していますが、printlnの内容( "\ n [最初の出力]")のような文字列をファイルに追加する方法を知っていますか? – cacao

関連する問題