2016-09-29 6 views
-1

Iスパーク1.6概念的な違いSpark 2.0のRDDとデータセットの関係は?

を読み取るデータセットは、より改善されたデータフレーム("Conceptually Spark DataSet is just a DataFrame with additional type safety")のようであると思われます。 Spark 2.0ではもっと多くのものがimproved RDDのように見えます。前者はリレーショナル・モデルを持ち、後者はリストのようなものです。 Spark 1.6では、データセットはDataFramesの拡張であると言われていましたが、Spark 2.0 DataFramesはType [Row]を含む単なるデータセットであり、DataFramesをDatasetの特別なケースにして、DataFramesをDatasetsの特別なケースにしました。今私は少し混乱している。 Spark 2.0のデータセットは、概念的にはRDDやDataFramesに似ていますか? 概念的なのRDDとSpark 2.0のデータセットの違いは何ですか?

答えて

0

私はユーザーの視点と非常に似ていますが、フードの下ではかなり異なって実装されています。データセットAPIは現在、RDDのAPIと同じくらい柔軟なようだが、最適化のストーリー全体

http://www.agildata.com/apache-spark-2-0-api-improvements-rdd-dataframe-dataset-sql/から引用(触媒&タングステン)を追加します

RDDSは、任意のJavaやScalaのクラスで使用し、 で動作することができ オブジェクトの作成、シリアライゼーション、およびガベージコレクションのすべての関連コストで直接これらのオブジェクトを操作します。

データセットは、ケースクラスなどのScala Product 特性を実装するクラスに限定されています。この の制限には非常に正当な理由があります。データセットは、デシリアライゼーションとごみのコストを避けるために、オフチップメモリ​​の に最適化されたバイナリ形式でデータを格納します。 コレクション。通常の オブジェクトに対してコーディングしているように感じても、Sparkは実際には のデータに直接アクセスする独自の最適化バイトコードを生成しています。

関連する問題