私は要素が(Long、String)型のRDDを持っています。何らかの理由で、私はHDFS全体にRDDを保存し、後でそのRDDをSparkプログラムで読み返したいと思います。それは可能ですか?そしてもしそうなら、どうですか?RDDをHDFSに保存して後で読み直すにはどうすればよいですか?
6
A
答えて
5
可能です。
RDDには、saveAsObjectFile
とsaveAsTextFile
の機能があります。タプルはとして保存されるので、後で解析することができます。
読書だから()
を排除するためにtextFile
SparkContextから機能し、その後.map
で行うことができます。 バージョン1:
rdd.saveAsTextFile ("hdfs:///test1/");
// later, in other program
val newRdds = sparkContext.textFile("hdfs:///test1/part-*").map (x => {
// here remove() and parse long/strings
})
バージョン2:
rdd.saveAsObjectFile ("hdfs:///test1/");
// later, in other program - watch, you have tuples out of the box :)
val newRdds = sparkContext.sc.sequenceFile("hdfs:///test1/part-*", classOf[Long], classOf[String])
3
私が推薦しますRDDが表形式の場合は、DataFrameを使用してください。データフレームはテーブル、または2次元配列のような構造です。各列には1つの変数の測定値が含まれ、各行には1つのケースが含まれます。 DataFrameには、表形式のために追加のメタデータがあります。これにより、Sparkはファイナライズされたクエリに対して特定の最適化を実行できます。 RDDは、最適化できないデータのブラックボックスまたはコアの抽象化のほうが多い復元力のある分散データセットです。 しかし、DataFrameからRDDへ、またはその逆に行くことができます。また、RDDからDataFrameへ(RDDが表形式である場合)toDFメソッドを使用することができます。
以下がHDFSにCSVと寄せ木形式/ストアデータフレームを作成する例であり、
val conf = {
new SparkConf()
.setAppName("Spark-HDFS-Read-Write")
}
val sqlContext = new SQLContext(sc)
val sc = new SparkContext(conf)
val hdfs = "hdfs:///"
val df = Seq((1, "Name1")).toDF("id", "name")
// Writing file in CSV format
df.write.format("com.databricks.spark.csv").mode("overwrite").save(hdfs + "user/hdfs/employee/details.csv")
// Writing file in PARQUET format
df.write.format("parquet").mode("overwrite").save(hdfs + "user/hdfs/employee/details")
// Reading CSV files from HDFS
val dfIncsv = sqlContext.read.format("com.databricks.spark.csv").option("inferSchema", "true").load(hdfs + "user/hdfs/employee/details.csv")
// Reading PQRQUET files from HDFS
val dfInParquet = sqlContext.read.parquet(hdfs + "user/hdfs/employee/details")
関連する問題
- 1. テキストファイルの保存/読み込みを赤色で保存するにはどうすればいいですか?
- 2. 直接HDFSに保存されているファイルを読み込むことはできますか?
- 3. csv.DictReaderでS3に保存されたcsvを読み込むにはどうすればよいですか?
- 4. mllib.recommendation.MatrixFactorizationModelをHDFSに保存するにはどうすればいいですか?私はHDFSの訓練の私のモデルを保存したい
- 5. Excelの日付を読み込んでデータベースに保存するにはどうすればよいですか?
- 6. plistを読み込んで文字列に保存するにはどうすればよいですか?
- 7. UIImageViewにイメージを保存して読み込むにはどうすればいいですか?
- 8. RDDを1つの寄木細工ファイルに保存するにはどうすればよいですか?
- 9. hdfsからバイナリファイルをSparkデータフレームに読み込むにはどうすればよいですか?
- 10. ダウンロードした更新を保存して後でインストールするにはどうすればよいですか?
- 11. Java(writeObject)で保存されたファイルをC++で読み取るにはどうすればいいですか
- 12. メソッドを後で保存して一定期間スタブするにはどうすればよいですか?
- 13. フレームスプリッタの位置を保存して後で復元するにはどうすればよいですか?
- 14. decent_exposureで送信した後にオブジェクトを保存するにはどうすればよいですか?
- 15. ナノエディタで保存した後にファイルパスを取得するにはどうすればよいですか?
- 16. Django.ページをリロードした後にフォームフィールドにデータを保存するにはどうすればよいですか?
- 17. .Netを使って直接ディスクを読み取るにはどうすればよいですか?
- 18. ページを開くときにイメージを垂直に読み込むにはどうすればよいですか?
- 19. Ember.js - レコードを保存した後にフォームデータを消去するにはどうすればよいですか?
- 20. ダブルネストフォームでフォームを保存するにはどうすればよいですか?
- 21. NSUserDefaultsでUIColorを保存するにはどうすればよいですか?
- 22. ASP.NETでセッションデータを保存するにはどうすればよいですか?
- 23. イメージをカメラロールに保存するにはどうすればよいですか?
- 24. データをSilverlightに保存するにはどうすればよいですか?
- 25. ファイルをfastcoloredtextboxに保存するにはどうすればよいですか?
- 26. オブジェクトをグローバルに保存するにはどうすればよいですか?
- 27. イメージをレルムデータベースに保存するにはどうすればよいですか?
- 28. レーティングをソングに保存するにはどうすればよいですか?
- 29. スタティックデータをLaravelに保存するにはどうすればよいですか?
- 30. iPhoneにplistを保存するにはどうすればよいですか?
誓い、それはニート溶液である:)。しかし、saveAsTextは多くの異なるファイルを作成するため、textFileを使ってどのように読み込みますか? – pythonic
@pythonic私の更新を参照してください - あなたはファイルの範囲を読むことができます。 RDDの各部分はファイル 'part-XYZŻ'に保存されるので、そのような名前の各ファイルを読むことができます –