🐷
Apache SparkのDatasetについて
Apache SparkでDataframe, Dataset, RDDの違いについて確認した。これらは、Sparkの中でデータを扱う際の分散コレクションである、中でも、Datasetについては理解できてなかった。もとい、知らなかった。
調べてみると、PySparkしか使ったことがなかったかららしい。
※ 雑談:RDDとDataFrame以外に、Datasetというオブジェクトも存在しますが、このブログシリーズでは省略します。実は、Spark 2.0になる際に、DataFrameとDatasetは統合されましたが、PySparkではDataFrameが使われています。理由としては表から読み取れる通り、Datasetは型チェックを行うオブジェクトとなりますが、Pythonには型を固定する概念がないため、使用されておりません。
Dataset APIは現在のところ、ScalaとJavaのみAPIを提供しています。 PythonとRに関しては言語の性質上Dataset APIによって得られるメリットのほとんどがDataFrameですでに達成しているという見解のようです(参考: 公式ドキュメント)
今回はScalaから利用したいと思います。
PySparkにはDatasetのAPIがない。
当面PySparkしか使わないので気にしないでおこう。
Discussion