メインコンテンツへジャンプ
ログイン
      • Databricks を知る
        • For App Developers
          • エグゼクティブ向け
            • スタートアップ向け
              • レイクハウスアーキテクチャ
                • Databricks AIリサーチ
                • 導入事例
                  • 注目の導入事例
                  • パートナー
                    • パートナー概要
                      Databricks パートナー エコシステムの詳細
                      • パートナースポットライト
                        注目のパートナーの発表
                        • パートナープログラム
                          特典、レベル、パートナーになる方法をご覧ください
                          • クラウドプロバイダー
                            AWS、Azure、GCP 上の Databricks
                            • パートナーを探す
                              ニーズに合った Databricks パートナーを見つける
                              • パートナーソリューション
                                業界別および移行ソリューションを見つける
                              • Databricks プラットフォーム
                                • プラットフォームの概要
                                  データ・分析・AI のための統合プラットフォーム
                                  • データエンジニアリング
                                    バッチ、ストリーミングデータのための ETL とオーケストレーション
                                    • AIアシスタント
                                      ビジネスユーザー向けのエージェント型同僚
                                      • データウェアハウジング
                                        バッチ、ストリーミングデータのための ETL とオーケストレーション
                                        • アプリケーション開発
                                          安全なデータと AI アプリを迅速に構築
                                          • データベース
                                            データアプリと AI エージェントのための Postgres
                                            • 人工知能(AI)
                                              ML と生成 AI アプリケーションの構築とデプロイメント
                                              • ガバナンス
                                                データ・分析・AI のための統合ガバナンス
                                                • BI
                                                  実世界データのインテリジェント分析
                                                  • セキュリティ
                                                    AI時代のために構築されたオープンなエージェント型SIEM
                                                    • 顧客データプラットフォーム
                                                      Databricksに組み込まれたエージェント型CDP
                                                      • 共有
                                                        データ、分析、AI のためのオープンなデータ共有
                                                      • 統合とデータ
                                                        • マーケットプレイス
                                                          データ、分析、AI のためのオープンマーケットプレイス
                                                          • IDE 統合
                                                            お気に入りの IDE(統合開発環境)でレイクハウスを構築
                                                            • パートナーコネクト
                                                              Databricks エコシステムの検索と統合
                                                            • ご利用料金
                                                              • Databricks のご利用料金
                                                                料金設定、DBU、その他
                                                                • コスト計算ツール
                                                                  クラウド利用でのコンピュートコストの試算
                                                                • オープンソース
                                                                  • オープンソーステクノロジー
                                                                    プラットフォームを支えるイノベーションをもっと詳しく
                                                                  • 業界向け Databricks
                                                                    • テレコミュニケーション
                                                                      • メディア・エンターテイメント
                                                                        • 金融サービス
                                                                          • 官公庁・公共機関
                                                                            • 医療・ライフサイエンス
                                                                              • リテール・消費財
                                                                                • 製造
                                                                                  • 全て見る
                                                                                  • クロスインダストリーソリューション
                                                                                    • AI Agents
                                                                                      • AI ガバナンス
                                                                                        • サイバーセキュリティ
                                                                                          • マーケティング
                                                                                          • 移行・デプロイメント
                                                                                            • データの移行
                                                                                              • プロフェッショナルサービス
                                                                                              • ソリューションアクセラレータ
                                                                                                • ソリューションアクセラレータ一覧
                                                                                                  成果を加速
                                                                                                • トレーニング・認定試験
                                                                                                  • トレーニング概要
                                                                                                    ニーズに合わせたカリキュラムを探す
                                                                                                    • Databricks アカデミー
                                                                                                      Databricks ラーニングプラットフォームにサインインする
                                                                                                      • 認定
                                                                                                        スキル・認定で差別化を図る
                                                                                                        • 無料版
                                                                                                          専門家向けデータとAIツールを無料で学べます
                                                                                                          • 大学との連携
                                                                                                            Databricks を教材として活用
                                                                                                          • イベント
                                                                                                            • DATA+AI サミット
                                                                                                              • Data+AI ワールドツアー
                                                                                                                • AI Days
                                                                                                                  • イベントカレンダー
                                                                                                                  • ブログ・ポッドキャスト
                                                                                                                    • Databricks ブログ
                                                                                                                      最新情報、製品発表、その他の情報
                                                                                                                      • AI ブログ
                                                                                                                        当社のAI研究とエンジニアリングの取り組みをご覧ください
                                                                                                                        • Data Brew ポッドキャスト
                                                                                                                          ご相談・お問い合わせ
                                                                                                                        • お役立ちリソース
                                                                                                                          • カスタマーサポート
                                                                                                                            • ドキュメント
                                                                                                                              • コミュニティ
                                                                                                                              • もっと詳しく
                                                                                                                                • リソースセンター
                                                                                                                                  • デモセンター
                                                                                                                                    • アーキテクチャ センター
                                                                                                                                    • 企業概要
                                                                                                                                      • Databricks について
                                                                                                                                        • 経営陣
                                                                                                                                          • Databricks Ventures
                                                                                                                                            • ご相談・お問い合わせ
                                                                                                                                            • 採用情報
                                                                                                                                              • 採用情報概要
                                                                                                                                                • 求人情報
                                                                                                                                                • プレス・ニュース記事
                                                                                                                                                  • ニュースルーム
                                                                                                                                                    • 受賞歴と業界評価
                                                                                                                                                    • セキュリティと信頼
                                                                                                                                                      • セキュリティと信頼
                                                                                                                                                  • 是非ご検討ください!
                                                                                                                                                  • デモを見る
                                                                                                                                                  • ログイン
                                                                                                                                                  • ご相談・お問い合わせ
                                                                                                                                                  • Databricks 無料トライアル
                                                                                                                                                  1. すべてのブログ
                                                                                                                                                  2. /
                                                                                                                                                    エンジニアリング
                                                                                                                                                  • User-defined Functions(UDFs) 概要
                                                                                                                                                  • メモリプロファイリングを有効にする
                                                                                                                                                  • Conclusion
                                                                                                                                                  • User-defined Functions(UDFs) 概要
                                                                                                                                                  • メモリプロファイリングを有効にする
                                                                                                                                                  • Conclusion
                                                                                                                                                  データエンジニアリング
                                                                                                                                                  2022年11月30日

                                                                                                                                                  PySparkでのメモリプロファイリング

                                                                                                                                                  によって Xinrong Meng, 植品拓也 、 アラン・フォルティング による投稿

                                                                                                                                                  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™エンジンの上でカスタムコードを実行することができるため強力なツールです。しかしメモリ消費量を理解せずにUDFを最適化することは困難です。PySpark UDFを最適化し、メモリ不足のエラーが発生する可能性を減らすために、PySparkのメモリプロファイラがメモリの総使用量に関する情報を提供します。これはUDFのどのコード行が最もメモリを使用しているのかを特定するものです。

                                                                                                                                                  エクゼキュータにメモリプロファイリングを実装することは困難です。エクゼキュータはクラスタ上に分散しているため、各エクゼキュータからメモリプロファイルを収集し、総メモリ使用量を表示するために適切に集計する必要がある。一方デバッグや刈り込みのために、メモリ消費量と各ソースコード行の間のマッピングを提供する必要があります。Databricks Runtime 12.0では、PySparkがこれらの技術的な困難を克服し、メモリプロファイリングをエクゼキュータ上で有効にしました。このブログでは、ユーザー定義関数(UDF)の概要を説明し、UDFを使ったメモリプロファイラの使い方を実演します。

                                                                                                                                                   

                                                                                                                                                  User-defined Functions(UDFs) 概要

                                                                                                                                                  PySparkでサポートされるUDFには、大きく分けて2つのカテゴリがあります。Python UDFとPandas UDFです。

                                                                                                                                                   

                                                                                                                                                  • Python UDFは、Pickleでシリアライズ/デシリアライズされたPythonオブジェクトを受け取り/返すユーザー定義のスカラー関数で、一度に1行ずつ操作します。
                                                                                                                                                  • Pandas UDF (a.k.a. Vectorized UDF) は、Apache Arrowでシリアライズ/デシリアライズされたpandas SeriesやDataFrameを受け取り/返すUDFで、ブロック単位で動作します。Pandas UDFは、用途別に分類されたいくつかのバリエーションがあり、特定の入力と出力のタイプがあります。Series to Series、Series to Scalar、Iterator to Iteratorです。

                                                                                                                                                  Pandas UDFsの実装に基づき、Pandas Function APIも用意されています。Map (例: mapInPandas) と (Co)Grouped Map (例: applyInPandas) 、そして Arrow Function API - mapInArrow です。メモリプロファイラが適用されるのは、関数がイテレータを取り込み/出力する場合を除き、上記のすべてのUDFタイプです。

                                                                                                                                                  メモリプロファイリングを有効にする

                                                                                                                                                  クラスタ上でメモリプロファイリングを有効にするには、以下のようにMemory Profilerライブラリをインストールし、Sparkの設定「spark.python.profile.memory」を「true」に設定する必要があります。

                                                                                                                                                  • クラスタにMemory Profilerライブラリをインストールします。

                                                                                                                                                  Install the Memory Profiler library on the cluster to enable memory profiling in Databricks Runtime 12.0.

                                                                                                                                                  • Sparkの設定「spark.python.profile.memory」を有効化します。

                                                                                                                                                  Set the Spark config “spark.python.profile.memory” to “true” to enable memory profiling in Databricks Runtime 12.0.

                                                                                                                                                  そして、UDFのメモリをプロファイルすることができます。GroupedData.applyInPandasでメモリプロファイラを説明します。

                                                                                                                                                  まず下図のように4,000,000行のPySpark DataFrameを生成します。その後 id列でグループ化することで、1グループ1,000,000行の4グループが生成されます。

                                                                                                                                                  そして、以下のように関数arith_opが定義され sdfに適用されます。

                                                                                                                                                  上記のコードを実行し、sc.show_profiles()を実行すると、以下の結果プロファイルが表示されます。この結果プロファイルは、sc.dump_profiles(path)によってディスクにダンプすることもできます。

                                                                                                                                                  Sample UDF memory profile in Databricks Runtime 12.0.

                                                                                                                                                  上記の結果プロファイルのUDF ID、245は、res.explain()を呼び出すことで示すことができるresの次のSparkプランのものと一致します。

                                                                                                                                                  sc.show_profiles()の結果プロファイルの本文では、カラムの見出しに

                                                                                                                                                  • Line # : プロファイルされたコードの行番号。
                                                                                                                                                  • Mem usage: その行が実行された後のPythonインタプリタのメモリ使用量
                                                                                                                                                  • Increment: 最後の行に対する現在の行のメモリの差分
                                                                                                                                                  • Occurrences: この行が実行された回数
                                                                                                                                                  • Line Contents: プロファイリングされたコード

                                                                                                                                                  結果プロファイルを見ると3行目("for x in pdf.v")が最もメモリを消費していることがわかります。この関数の総メモリ使用量は、185MiBです。

                                                                                                                                                  以下のようにpdf.vの反復を削除することで、よりメモリ効率の良い関数に最適化することができます。

                                                                                                                                                  更新された結果プロファイルは以下の通りです。

                                                                                                                                                  Updated UDF memory profile in Databricks Runtime 12.0 after optimization.

                                                                                                                                                  optimized_arith_opの総メモリ使用量は、2倍少ない61MiBに減少しています。

                                                                                                                                                  上記の例はメモリプロファイラがUDFのメモリ消費量を深く理解し、メモリのボトルネックを特定し関数をよりメモリ効率的にするのに役立つことを示しています。

                                                                                                                                                  Conclusion

                                                                                                                                                  PySparkのメモリプロファイラがMemory Profilerをベースに実装されています。Pythonワーカーから結果プロファイルを収集する際には、Spark Accumulatorsも重要な役割を果たします。メモリプロファイラでは、UDFの総メモリ使用量を計算し、どのコード行が最もメモリ使用量が多いかをピンポイントで特定します。使い方は簡単で、Databricks Runtime 12.0.から利用できます。

                                                                                                                                                  さらに、PySparkメモリプロファイラをApache Spark™コミュニティにオープンソース化しました。メモリプロファイラが利用可能になるのはSpark 3.4からです。より詳細はSPARK-40281をご覧ください。

                                                                                                                                                  最新の投稿を受信トレイで受け取る

                                                                                                                                                  ブログを購読して、最新の投稿を受信トレイにお届けします。

                                                                                                                                                  Sign up

                                                                                                                                                  すべてのブログを見る
                                                                                                                                                  databricks logo
                                                                                                                                                  Databricks を選ぶ理由
                                                                                                                                                  Databricks を選ぶ理由
                                                                                                                                                  • For App Developers
                                                                                                                                                  • エグゼクティブ向け
                                                                                                                                                  • スタートアップ向け
                                                                                                                                                  • レイクハウスアーキテクチャ
                                                                                                                                                  • Databricks AIリサーチ
                                                                                                                                                  導入事例
                                                                                                                                                  • 注目の導入事例
                                                                                                                                                  パートナー
                                                                                                                                                  • パートナー概要
                                                                                                                                                  • パートナープログラム
                                                                                                                                                  • パートナーを探す
                                                                                                                                                  • パートナースポットライト
                                                                                                                                                  • クラウドプロバイダー
                                                                                                                                                  • パートナーソリューション
                                                                                                                                                  Databricks を選ぶ理由
                                                                                                                                                  • For App Developers
                                                                                                                                                  • エグゼクティブ向け
                                                                                                                                                  • スタートアップ向け
                                                                                                                                                  • レイクハウスアーキテクチャ
                                                                                                                                                  • Databricks AIリサーチ
                                                                                                                                                  導入事例
                                                                                                                                                  • 注目の導入事例
                                                                                                                                                  パートナー
                                                                                                                                                  • パートナー概要
                                                                                                                                                  • パートナープログラム
                                                                                                                                                  • パートナーを探す
                                                                                                                                                  • パートナースポットライト
                                                                                                                                                  • クラウドプロバイダー
                                                                                                                                                  • パートナーソリューション
                                                                                                                                                  製品
                                                                                                                                                  レイクハウスプラットフォーム
                                                                                                                                                  • プラットフォーム
                                                                                                                                                  • AIアシスタント
                                                                                                                                                  • アプリケーション開発
                                                                                                                                                  • 人工知能(AI)
                                                                                                                                                  • BI
                                                                                                                                                  • 顧客データプラットフォーム
                                                                                                                                                  • データエンジニアリング
                                                                                                                                                  • データウェアハウス
                                                                                                                                                  • データベース
                                                                                                                                                  • データガバナンス
                                                                                                                                                  • Neon
                                                                                                                                                  • セキュリティ
                                                                                                                                                  • 共有
                                                                                                                                                  ご利用料金
                                                                                                                                                  • 料金設定の概要
                                                                                                                                                  • 料金計算ツール
                                                                                                                                                  オープンソース
                                                                                                                                                  統合とデータ
                                                                                                                                                  • マーケットプレイス
                                                                                                                                                  • IDE 統合
                                                                                                                                                  • パートナーコネクト
                                                                                                                                                  レイクハウスプラットフォーム
                                                                                                                                                  • プラットフォーム
                                                                                                                                                  • AIアシスタント
                                                                                                                                                  • アプリケーション開発
                                                                                                                                                  • 人工知能(AI)
                                                                                                                                                  • BI
                                                                                                                                                  • 顧客データプラットフォーム
                                                                                                                                                  • データエンジニアリング
                                                                                                                                                  • データウェアハウス
                                                                                                                                                  • データベース
                                                                                                                                                  • データガバナンス
                                                                                                                                                  • Neon
                                                                                                                                                  • セキュリティ
                                                                                                                                                  • 共有
                                                                                                                                                  ご利用料金
                                                                                                                                                  • 料金設定の概要
                                                                                                                                                  • 料金計算ツール
                                                                                                                                                  統合とデータ
                                                                                                                                                  • マーケットプレイス
                                                                                                                                                  • IDE 統合
                                                                                                                                                  • パートナーコネクト
                                                                                                                                                  ソリューション
                                                                                                                                                  業種別
                                                                                                                                                  • 通信
                                                                                                                                                  • 金融サービス
                                                                                                                                                  • 医療・ライフサイエンス
                                                                                                                                                  • 製造
                                                                                                                                                  • メディア・エンタメ
                                                                                                                                                  • 官公庁・公共機関
                                                                                                                                                  • リテール・消費財
                                                                                                                                                  • 全て表示
                                                                                                                                                  クロスインダストリーソリューション
                                                                                                                                                  • AI エージェント
                                                                                                                                                  • AI ガバナンス
                                                                                                                                                  • サイバーセキュリティ
                                                                                                                                                  • マーケティング
                                                                                                                                                  データの移行
                                                                                                                                                  プロフェッショナルサービス
                                                                                                                                                  ソリューションアクセラレータ
                                                                                                                                                  業種別
                                                                                                                                                  • 通信
                                                                                                                                                  • 金融サービス
                                                                                                                                                  • 医療・ライフサイエンス
                                                                                                                                                  • 製造
                                                                                                                                                  • メディア・エンタメ
                                                                                                                                                  • 官公庁・公共機関
                                                                                                                                                  • リテール・消費財
                                                                                                                                                  • 全て表示
                                                                                                                                                  クロスインダストリーソリューション
                                                                                                                                                  • AI エージェント
                                                                                                                                                  • AI ガバナンス
                                                                                                                                                  • サイバーセキュリティ
                                                                                                                                                  • マーケティング
                                                                                                                                                  リソース
                                                                                                                                                  ドキュメント
                                                                                                                                                  カスタマーサポート
                                                                                                                                                  コミュニティ
                                                                                                                                                  トレーニング・認定試験
                                                                                                                                                  • トレーニング
                                                                                                                                                  • 認定
                                                                                                                                                  • 無料版
                                                                                                                                                  • 大学との連携
                                                                                                                                                  • Databricks アカデミー
                                                                                                                                                  イベント
                                                                                                                                                  • DATA+AI サミット
                                                                                                                                                  • Data+AI ワールドツアー
                                                                                                                                                  • AI Days
                                                                                                                                                  • イベントカレンダー
                                                                                                                                                  ブログ・ポッドキャスト
                                                                                                                                                  • Databricks ブログ
                                                                                                                                                  • AI ブログ
                                                                                                                                                  • Data Brew ポッドキャスト
                                                                                                                                                  トレーニング・認定試験
                                                                                                                                                  • トレーニング
                                                                                                                                                  • 認定
                                                                                                                                                  • 無料版
                                                                                                                                                  • 大学との連携
                                                                                                                                                  • Databricks アカデミー
                                                                                                                                                  イベント
                                                                                                                                                  • DATA+AI サミット
                                                                                                                                                  • Data+AI ワールドツアー
                                                                                                                                                  • AI Days
                                                                                                                                                  • イベントカレンダー
                                                                                                                                                  ブログ・ポッドキャスト
                                                                                                                                                  • Databricks ブログ
                                                                                                                                                  • AI ブログ
                                                                                                                                                  • Data Brew ポッドキャスト
                                                                                                                                                  企業情報
                                                                                                                                                  企業概要
                                                                                                                                                  • Databricks について
                                                                                                                                                  • 経営陣
                                                                                                                                                  • Databricks Ventures
                                                                                                                                                  • ご相談・お問い合わせ
                                                                                                                                                  採用情報
                                                                                                                                                  • 採用情報概要
                                                                                                                                                  • 求人情報
                                                                                                                                                  プレス・ニュース記事
                                                                                                                                                  • ニュースルーム
                                                                                                                                                  • 受賞歴と業界評価
                                                                                                                                                  セキュリティと信頼
                                                                                                                                                  企業概要
                                                                                                                                                  • Databricks について
                                                                                                                                                  • 経営陣
                                                                                                                                                  • Databricks Ventures
                                                                                                                                                  • ご相談・お問い合わせ
                                                                                                                                                  採用情報
                                                                                                                                                  • 採用情報概要
                                                                                                                                                  • 求人情報
                                                                                                                                                  プレス・ニュース記事
                                                                                                                                                  • ニュースルーム
                                                                                                                                                  • 受賞歴と業界評価
                                                                                                                                                  databricks logo

                                                                                                                                                  Databricks Inc.
                                                                                                                                                  160 Spear Street, 15th Floor
                                                                                                                                                  San Francisco, CA 94105
                                                                                                                                                  1-866-330-0121

                                                                                                                                                  採用情報

                                                                                                                                                  © Databricks 2026. All rights reserved. Apache, Apache Spark, Spark and the Spark logo are trademarks of the Apache Software Foundation.

                                                                                                                                                  • プライバシー通知
                                                                                                                                                  • |利用規約
                                                                                                                                                  • |現代奴隷法に関する声明
                                                                                                                                                  • |カリフォルニア州のプライバシー権利
                                                                                                                                                  • |プライバシー設定