
54
3
章
DataFrame
この点が特に重要なのは、型の強制によるメリットが生じないことから、PySpark では Dataset API が
サポートされないためです。ただし、PySparkでは利用できない Dataset APIの中には、RDD への変
換やUDFの使用によって利用できるものもあります。詳しくは、JIRAの[SPARK-13233]: Python
Dataset(http://bit.ly/2dbfoFT)を参照してください。
3.11
まとめ
SparkのDataFrameを使うことによって、Pythonの開発者はこれまでよりもシンプルな抽象化レ
イヤを使えるようになり、しかも速度を大きく向上させられる可能性があります。もともとSparkで
Pythonが低速だった理由の一つは、Pythonのサブプロセスと JVM間の通信レイヤでした。Scalaの
DataFrame のラッパーが用意されたことによって、DataFrameを使えば Pythonのユーザーは Python
のサブプロセス/ JVM間のコミュニケーションのオーバーヘッドを回避できるようになりました。
Spark のDataFrame は 、本 章 で 見 て き た Catalyst Optimizer やProject Tungsten によって多くの部分
でパフォーマンスが向上しています。本章では、Spark のDataFrameの扱い方や、DataFrameを使っ
た定刻フライトのパフォーマンス分