メインコンテンツへジャンプ
ログイン
      • Databricks を知る
        • エグゼクティブ向け
          • スタートアップ向け
            • レイクハウスアーキテクチャ
              • Mosaic Research
              • 導入事例
                • 注目の導入事例
                • パートナー
                  • クラウドプロバイダ
                    Databricks on AWS、Azure、GCP
                    • コンサルティング・SI
                      Databricks の構築・デプロイ、Databricks への移行のエキスパート
                      • 技術パートナー
                        既存のツールをレイクハウスに接続
                        • C&SI パートナー
                          レイクハウスの構築・デプロイメント、レイクハウスへの移行
                          • データパートナー
                            データコンシューマーのエコシステムにアクセス
                            • パートナーソリューション
                              業界・移行のニーズに応じたカスタムソリューション
                              • Databricks で構築
                                ビジネスの創造・マーケティング・成長
                              • Databricks プラットフォーム
                                • プラットフォームの概要
                                  データ・分析・AI のための統合プラットフォーム
                                  • データ管理
                                    データの信頼性・セキュリティ・パフォーマンス
                                    • 共有
                                      オープン、セキュア、ゼロコピーでのデータ共有
                                      • データウェアハウジング
                                        バッチ、ストリーミングデータのための ETL とオーケストレーション
                                        • ガバナンス
                                          データ・分析・AI のための統合ガバナンス
                                          • データエンジニアリング
                                            バッチ、ストリーミングデータのための ETL とオーケストレーション
                                            • 人工知能(AI)
                                              ML と生成 AI アプリケーションの構築とデプロイメント
                                              • データサイエンス
                                                データサイエンスの大規模な連携
                                                • BI
                                                  実世界データのインテリジェント分析
                                                  • アプリケーション開発
                                                    安全なデータと AI アプリを迅速に構築
                                                    • データベース
                                                      データアプリとAIエージェントのための Postgres
                                                    • 統合とデータ
                                                      • マーケットプレイス
                                                        データ、分析、AI のためのオープンマーケットプレイス
                                                        • IDE 統合
                                                          お気に入りの IDE(統合開発環境)でレイクハウスを構築
                                                          • パートナーコネクト
                                                            Databricks エコシステムの検索と統合
                                                          • ご利用料金
                                                            • Databricks のご利用料金
                                                              料金設定、DBU、その他
                                                              • コスト計算ツール
                                                                クラウド利用でのコンピュートコストの試算
                                                              • オープンソース
                                                                • オープンソーステクノロジー
                                                                  プラットフォームを支えるイノベーションをもっと詳しく
                                                                • 業界向け Databricks
                                                                  • 通信
                                                                    • メディア・エンターテイメント
                                                                      • 金融サービス
                                                                        • 官公庁・公共機関
                                                                          • 医療・ライフサイエンス
                                                                            • リテール・消費財
                                                                              • 製造
                                                                                • 全て見る
                                                                                • クロスインダストリーソリューション
                                                                                  • サイバーセキュリティ
                                                                                    • マーケティング
                                                                                    • 移行・デプロイメント
                                                                                      • データの移行
                                                                                        • プロフェッショナルサービス
                                                                                        • ソリューションアクセラレータ
                                                                                          • ソリューションアクセラレータ一覧
                                                                                            成果を加速
                                                                                          • トレーニング・認定試験
                                                                                            • トレーニング概要
                                                                                              ニーズに合わせたカリキュラムを探す
                                                                                              • Databricks アカデミー
                                                                                                Databricks ラーニングプラットフォームにサインインする
                                                                                                • 認定
                                                                                                  スキル・認定で差別化を図る
                                                                                                  • 無料版
                                                                                                    専門家向けデータとAIツールを無料で学べます
                                                                                                    • 大学との連携
                                                                                                      Databricks を教材として活用
                                                                                                    • イベント
                                                                                                      • DATA+AI サミット
                                                                                                        • Data+AI ワールドツアー
                                                                                                          • Data Intelligence Days
                                                                                                            • イベントカレンダー
                                                                                                            • ブログ・ポッドキャスト
                                                                                                              • Databricks ブログ
                                                                                                                最新情報、製品発表、その他の情報
                                                                                                                • Databricks Mosaic AIリサーチブログ
                                                                                                                  AI世代に関する最新リサーチ
                                                                                                                  • Data Brew ポッドキャスト
                                                                                                                    ご相談・お問い合わせ
                                                                                                                    • ポッドキャスト:Data+AI のチャンピオン
                                                                                                                      イノベーションを支えるデータリーダーのインサイト
                                                                                                                    • お役立ちリソース
                                                                                                                      • カスタマーサポート
                                                                                                                        • ドキュメント
                                                                                                                          • コミュニティ
                                                                                                                          • もっと詳しく
                                                                                                                            • リソースセンター
                                                                                                                              • デモセンター
                                                                                                                                • アーキテクチャ センター
                                                                                                                                • 企業概要
                                                                                                                                  • Databricks について
                                                                                                                                    • 経営陣
                                                                                                                                      • Databricks Ventures
                                                                                                                                        • ご相談・お問い合わせ
                                                                                                                                        • 採用情報
                                                                                                                                          • 採用情報概要
                                                                                                                                            • 求人情報
                                                                                                                                            • プレス・ニュース記事
                                                                                                                                              • ニュースルーム
                                                                                                                                                • 受賞歴と業界評価
                                                                                                                                                • セキュリティと信頼
                                                                                                                                                  • セキュリティと信頼
                                                                                                                                              • 是非ご検討ください!
                                                                                                                                              • デモを見る
                                                                                                                                              • ログイン
                                                                                                                                              • Databricks 無料トライアル
                                                                                                                                              1. ブログ
                                                                                                                                              2. /
                                                                                                                                                データエンジニアリング
                                                                                                                                              3. /
                                                                                                                                                記事

                                                                                                                                              DataFrameの等式関数を使ったPySparkテストのシンプル化

                                                                                                                                              PySpark DataFrameの等式テスト関数の紹介、なぜ重要なのか、どのように使うのか。

                                                                                                                                              Data Intelligence Platforms

                                                                                                                                              Published: March 6, 2024

                                                                                                                                              データエンジニアリング2分で読めます

                                                                                                                                              イ・ヘジュン、アリソン・ワン、アマンダ・リュー による投稿

                                                                                                                                              この投稿を共有する

                                                                                                                                              最新の投稿を通知します

                                                                                                                                              DataFrameの等式テスト関数は、PySparkのユニットテストを簡素化するためにApache Spark™ 3.5とDatabricks Runtime 14.2で導入されました。 このブログ記事で説明した機能一式は、次期Apache Spark 4.0とDatabricks Runtime 14.3から利用可能になります。

                                                                                                                                              DataFrameの等式テスト関数を使用して、より信頼性の高いDataFrame変換を記述

                                                                                                                                              PySparkでデータを扱うには、DataFrameに変換、集約、操作を適用します。 変換が蓄積されるにつれて、コードが期待通りに動作することをどうやって確信できるでしょうか? PySparkの等式テストユーティリティ関数は、データを期待される結果と照らし合わせてチェックする効率的で効果的な方法を提供し、予期しない差異を特定して分析プロセスの初期段階でエラーを検出するのに役立ちます。 さらに、デバッグに多くの時間を費やすことなく、即座に対策を講じることができるように、違いを正確に特定する直感的な情報を返します。

                                                                                                                                              DataFrame の等式テスト関数の使用

                                                                                                                                              Apache Spark 3.5では、PySpark DataFrame用の2つの等式テスト関数assertDataFrameEqualと assertSchemaEqualが導入されました。 それぞれの使い方を見てみましょう。

                                                                                                                                              assertDataFrameEqual:この関数を使うと、1行のコードで2つのPySpark DataFrameが等しいかどうかを比較し、データとスキーマが一致するかどうかをチェックできます。 違いがある場合は、説明的な情報を返します。

                                                                                                                                              例を見てみましょう。 まず、2つのDataFrameを作成し、最初の行に意図的に差分を入れます:

                                                                                                                                              そして、2つのDataFrameでassertDataFrameEqualを呼び出します:

                                                                                                                                              この関数は、2つのDataFrameの最初の行が異なることを示す説明的なメッセージを返します。 この例では、この行のAlfredの最初の金額が同じではありません(予想:1500、実際:1200):

                                                                                                                                              この情報があれば、あなたのコードが生成したDataFrameの問題をすぐに知ることができ、それに基づいてデバッグを行うことができます。

                                                                                                                                              また、この関数には、DataFrame の比較の厳密さを制御するためのいくつかのオプションがあります。

                                                                                                                                              assertSchemaEqual:行データの比較は行いません。 これにより、2つの異なるDataFramesのカラム名、データ型、Nullableプロパティが同じかどうかを検証することができます。

                                                                                                                                              例を見てみましょう。 まず、異なるスキーマを持つ2つのDataFrameを作成します:

                                                                                                                                              では、これら2つのDataFrameスキーマを使ってassertSchemaEqualを呼び出してみましょう:

                                                                                                                                              この関数は2つのDataFramesのスキーマが異なることを判定し、出力がどこで分岐しているかを出力します。

                                                                                                                                              この例では、amount列のデータ型が、実際のDataFrameではLONGですが、期待されるDataFrameではDOUBLEであることと、スキーマを指定せずに期待されるDataFrameを作成したため、列名も異なるという2つの違いがあります。

                                                                                                                                              これらの違いは、ここに示されているように、関数の出力で強調表示されます。

                                                                                                                                              assertPandasOnSparkEqualはApache Spark 3.5.1から非推奨となり、次期Apache Spark 4.0.0で削除される予定なので、このブログ記事では取り上げません。 Spark 上での Pandas API のテストについては、Pandas API on Spark equality test functions を参照してください。

                                                                                                                                              PySpark DataFrames の違いをデバッグするための構造化出力

                                                                                                                                              assertDataFrameEqual関数とassertSchemaEqual関数は主にPySpark関数をテストするために小さいデータセットを使用するユニットテストを目的としていますが、数行と数列以上のDataFrameで使用することもあります。 このような場合、異なる行のデータを簡単に取得することができ、デバッグが容易になります。

                                                                                                                                              その方法を見てみましょう。 先ほどと同じデータを使って、2つのDataFrameを作ります:

                                                                                                                                              そして今度は、assertDataFrameEqual をコールした後に、アサーション・エラー・オブジェクトから 2 つの DataFrame の間で異なるデータを取得します:

                                                                                                                                              この例で行ったように、異なる行に基づいてDataFrameを作成し、それを表示することで、この情報へのアクセスがいかに簡単であるかを示しています:

                                                                                                                                              ご覧のように、異なる行の情報はすぐに分析に利用できます。 デバッグのために、この情報を実際のDataFramesと期待されるDataFramesから抽出するコードを書く必要はもうありません。

                                                                                                                                              この機能は、次期Apache Spark 4.0とDBR 14.3から利用可能になります。

                                                                                                                                              PandasのAPIをSparkの等式テスト関数で実行

                                                                                                                                              PySparkのDataFrameの等質性をテストする関数に加えて、Pandas API on Sparkのユーザは以下のDataFrameの等式テスト関数を利用することができます:

                                                                                                                                              • assert_frame_equal
                                                                                                                                              • assert_series_equal
                                                                                                                                              • assert_index_equal

                                                                                                                                              この関数は、比較の厳密性を制御するオプションを提供し、Spark DataFrames上でのPandas APIのユニットテストに最適です。 これらはpandasのテストユーティリティ関数と全く同じAPIを提供しているため、Spark上でPandas APIを使用して実行したい既存のpandasテストコードを変更することなく使用することができます。

                                                                                                                                              以下は、Pandas APIとSpark DataFramesを比較し、パラメータを変えてassert_frame_equalを使用する例です:

                                                                                                                                              この例では、2つのDataFrameのスキーマが異なっています。 関数の出力は、ここに示すように、差分を一覧表示します:

                                                                                                                                              この例のように、check_dtype引数を使用して、カラムのデータ型が同じでなくてもカラムのデータを比較するように関数を指定することができます:

                                                                                                                                              assert_frame_equalは列のデータ型を無視するように指定したので、2つのDataFrameは等しいとみなされます。

                                                                                                                                              これらの関数は、Sparkオブジェクト上のPandas APIとpandasオブジェクトの比較も可能で、この例で示されているように、異なるDataFrameライブラリ間の互換性チェックを容易にします:

                                                                                                                                              新しい PySpark DataFrame と Pandas API on Spark の等式テスト関数を使用することは、PySpark コードが期待通りに動作することを確認する素晴らしい方法です。 これらの機能は、エラーをキャッチするだけでなく、何が問題なのかを正確に理解し、問題がどこにあるのかを素早く簡単に特定するのに役立ちます。 詳しくはTesting PySparkのページを参照してください。

                                                                                                                                              これらの機能は、次期Apache Spark 4.0から利用可能になります。 DBR14.2はすでにサポートしています。

                                                                                                                                              最新の投稿を通知します

                                                                                                                                              関連記事

                                                                                                                                              Introducing Apache Spark™ 3.5

                                                                                                                                              オープンソース

                                                                                                                                              September 14, 2023/4分で読めます

                                                                                                                                              Apache Spark™ 3.5のご紹介

                                                                                                                                              この投稿を共有する

                                                                                                                                              Databricksの投稿を見逃さないようにしましょう

                                                                                                                                              興味のあるカテゴリを購読して、最新の投稿を受信トレイに届けましょう

                                                                                                                                              Sign up

                                                                                                                                              次は何ですか?

                                                                                                                                              Generating Coding Tests for LLMs: A Focus on Spark SQL

                                                                                                                                              データエンジニアリング

                                                                                                                                              October 2, 2024/2分で読めます

                                                                                                                                              LLMのためのコーディングテスト作成 〜Spark SQLに焦点を当てて〜

                                                                                                                                              Booting Databricks VMs 7x Faster for Serverless Compute

                                                                                                                                              データエンジニアリング

                                                                                                                                              November 25, 2024/1分未満

                                                                                                                                              DatabricksのサーバーレスコンピュートでVM起動を7倍高速化

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

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

                                                                                                                                              採用情報

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

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