2023年のPySpark:1年を振り返って
2023年にリリースされたApache Spark 3.4と3.5で、私たちはPySparkのパフォーマンス、柔軟性、使いやすさの改善に重点を置きました。 このブログ記事では、主な改善点をご紹介します。 2023年にApache Spark 3.4と3.5で追加された最も重要な機能の概要です: Spark Connect は、任意のアプリケーションからSparkクラスタへのリモート接続を可能にする、クライアントとサーバーを分離したアーキテクチャを導入しています。 これにより、サービスとしてのSparkは、安定性、アップグレード可能性、可観測性を高めながら実現されます。 Arrowに最適化されたPythonユーザー定義関数(UDF )では、Arrowのカラムナーフォーマットを活用することで、通常のPython UDFの2倍のパフォーマンスを実現し、飛躍的な効率の向上を示しました。 Pythonのユーザー定義テーブル関数(UDTF) により、ユーザーはPySparkでネイティブにテーブルベースの変換を実行できるように
Apache Spark™ 3.5におけるArrowに最適化されたPython UDF
Apache Spark™では、Pythonのユーザー定義関数(UDF)は最も人気のある機能の1つです。 ユーザーは、独自のデータ処理ニーズに合わせてカスタムコードを作成することができる。 しかし、シリアライズとデシリアライズのためにcloudpickleに依存している現在のPython UDFは、特に大きなデータの入出力を扱うときに、パフォーマンスのボトルネックに遭遇する。 Apache Spark 3.5と Databricks Runtime 14.0では 、Arrowに最適化されたPython UDFを導入し、パフォーマンスを大幅に改善しました。 この最適化の核となるのが、標準化された言語横断的なカラム型インメモリデータ表現である Apache Arrow である。 Arrowを利用することで、これらのUDFは、従来の遅いデータ(デ)シリアライゼーションの方法をバイパスし、JVMとPythonプロセス間の迅速なデータ交換をもたらします。 Apache Arrowの豊富な型システムにより、これらの最適化され
Apache Spark™ 3.4 for Databricks Runtime 13.0の紹介
Original Blog : Introducing Apache Spark™ 3.4 for Databricks Runtime 13.0 (翻訳: junichi.maruyama ) 本日、 Databricks Runtime 13.0 の一部として、Databricks上で Apache Spark™ 3.4...
PySparkでのメモリプロファイリング
Original Blog : Memory Profiling in PySpark 翻訳: junichi.maruyama PySparkのプログラムのパフォーマンスには多くの要因があります。PySparkは様々なプロファイリングツ ールをサポートしており、プログラムのタイトループを公開し、パフォーマンス改善の意思決定を行うことができます( 詳細を見る )しかしプログラムの性能の重要な要因の1つであるメモリは、PySparkのプロファイリングでは見落とされていました。Sparkドライバ上のPySparkプログラムは、通常のPythonプロセスとして Memory Profiler でプロファイリングできますが、Sparkエグゼキュータ上のメモリを簡単にプロファイリングする方法は存在しませんでした。 PySpark UDFは最も人気のあるPython APIの1つで、Sparkエグゼキュータによって生成されたPythonワーカーサブプロセスで実行されます。Apache Spark™エンジンの上でカスタムコードを
Koalas(PySpark)がDask よりも高速な理由 – SQL クエリ最適化など
Koalas は、Apache Spark 上で pandas API を実装するデータサイエンスライブラリです。Koalas を利用することで、データサイエンティストは、使い慣れた API を介してあらゆる規模のデータセットを扱うことができます。今回私たちは、ビッグデータ分析の際によく使用される pandas API を実装した並列計算ライブラリの Dask と、PySpark の Koalas とのパフォーマンス比較を行いました。ベンチマークテストを繰り返したところ、 Koalas のパフォーマンスは 、Dask と比較して、シングルノードで 4 倍、クラスタで...