この記事は? この記事は、Distributed computing (Apache Hadoop, Spark, Kafka, …) Advent Calendar 2017の21日目の記事です。 この記事の内容は? 2018年の早い時期にリリース予定のApache Spark 2.3に入る、Catalyst optimizerによって生成されるJavaコードの改善に関するまとめです。 結局何がいいたいの? Spark 2.2までは、DataFrameやDatasetのqueryの中で、複雑な式や多数のカラム、を使うと、実行時に例外が投げられて、運が悪いと実行が止まってしまうのを、よく見ていたこと思います。 この例外は、20年以上前に定義されたJavaのクラスファイルの仕様が持つ、2つの64KBの制限、からくるものでした。これらの制限によって起きる例外は、Spark 2.3ではかなり減り