@InterfaceStability.Stable
public class Dataset<T>
extends Object
implements scala.Serializabl
1)データセットは特定のフィールドの強く型付けされたコレクションです
2)各データセットには、DataFrameと呼ばれる型指定されていないビューがあります。これは、Rowタイプのデータセットです。つまり、DataFrameはDatasetの特殊なケースです。
3)RDDと同様に、DataSetには変換とアクションの2つの操作が含まれます。
4)データセットを作成する2つの方法:
SparkSessionのreadメソッドを使用します。
val people = spark.read.parquet("...").as[Person] // Scala
Dataset<Person> people = spark.read().parquet("...").as(Encoders.bean(Person.class)); // Java
既存のデータセットによる変換:
val names = people.map(_.name) // in Scala; names is a Dataset[String]
Dataset<String> names = people.map((Person p) -> p.name, Encoders.STRING)); // in Java 8
5)データセット、RDD、およびデータフレーム間の関係:
Sparkは、SparkSQLの2つの新しい抽象化、つまりDataFrameとDataSetを提供します。それらとRDDの違いは何ですか?最初にバージョン生成を確認します
。RDD(Spark1.0)—> Dataframe(Spark1.3)—> Dataset(Spark1.6)
これら3つのデータ構造に同じデータが与えられた場合、別々に計算された後、すべて同じ結果になります。違いは、実行効率と実行方法です。
Sparkの新しいバージョンでは、DataSetはRDDとDataFrameを唯一のAPIインターフェースとして徐々に置き換えます。
3つの関係の具体的な概要については、「RDDとDataFrameおよびDataSetの違い」を参照してください。