For AI agents: the complete documentation index is available at https://docs.dataplatform.ovh.net/ja/llms.txt, the full documentation bundle is available at https://docs.dataplatform.ovh.net/ja/llms-full.txt, and this page is available as Markdown at https://docs.dataplatform.ovh.net/ja/developers-python-sdk-connect-spark.md.
  • 🇯🇵 日本語
  • Data Platform Python SDK で PySpark を接続する

    一般的なユースケースのサンプルコードを確認することをお忘れなく。Data Platform でカスタム PySpark アクションを作成すると、2つのことが行われます

    目的

    Info

    Custom Action PySpark では、Connector オブジェクトの Spark 互換メソッドを使用できます。これらのメソッドは カスタム PySpark アクションでのみ利用可能 であり、接続するソースの種類によって異なります。

    一般的なユースケースの サンプルコード を確認することをお忘れなく。

    PySpark の connect モジュール

    Custom PySpark action を作成すると、Data Platform によって以下の2つのことが行われます:

    • スクリプトを呼び出す前に SparkContext が作成されます。
    • スクリプトの後に SparkContext.stop() が呼び出されます。

    したがって、Spark の機能に簡単にアクセスできます:

    SparkContext.getOrCreate()

    Data Platform 内に保存されたデータにアクセスするには、まず connect 関数で Connector オブジェクトをインスタンス化 する必要があります。その後、Connector オブジェクトの Spark 互換メソッド を使用して接続されたデータとやり取りできます。

    例えば、Spark Dataframe オブジェクトを取得するメソッドは connnector.extract_dataframe() です。以下のサンプルコードは、ソースに直接接続し、そのメソッドを使用して Spark オブジェクトを取得します:

    from forepaas.dwh import connect
    
    cn_source = connect("dwh/file_upload_source/chicago_calendar_full.csv")
    
    # Spark compatible connector extract_dataframe function returns Spark DataFrame
    spark_df = cn_source.extract_dataframe()
    Info

    Data Platform のすべてのコネクタが PySpark と互換性があるわけではありません。互換性のあるコネクタの例は、Snowflake、PostgreSQL、MySQL、Amazon S31、File-Upload、Data Platform Bucket ですが、このリストは常に進化しています。

    Spark 互換 Connector メソッド

    get_spark_options()

    データベースに接続するための Spark オプションを返します。

    プロトコルソース(バケット、ファイルアップロード、Amazon S3 など)では利用できません。

    出力

    種類説明
    辞書データベースに接続するための SparkOptions。下記を参照。
    {
                "sfAccount": ...,
                "sfURL": ...,
                "sfUser": ...,
                "sfSchema": ...,
                "sfDatabase": ...,
                "sfTimezone": ...,
                "sfWarehouse": ...,
                "preactions": ...,
    }

    get_spark_context()

    現在の SparkContext を返します。

    出力

    種類説明
    pyspark.SparkContext現在の SparkContext。-

    get_spark_session()

    Data Platform バケット / ファイルアップロードを使用する際に異なる設定で構成された現在の Spark セッションを返します。

    プロトコルソース(バケット、ファイルアップロード、Amazon S3 など)でのみ利用可能です。

    出力

    種類説明
    pyspark.sql.SparkSession現在の Spark セッション。-

    get_spark_url(path, filename, bucket=None)

    オブジェクトストア内のオブジェクトの指定されたパスのファイル URL を返します。パスはオブジェクトストア内の絶対パスである必要があり、バケットが設定されていない場合はユーザー設定から使用します。

    プロトコルソース(バケット、ファイルアップロード、Amazon S3 など)でのみ利用可能です。

    入力パラメータ

    名前種類説明
    pathstrバケット内のファイルへの絶対パス。-
    filenamestr拡張子付きのファイル名。-
    bucket (オプション)strオブジェクトストア内のバケット。-

    出力

    種類説明
    strファイルの Spark URL。s3a://bucket_name/path/chicago_calendar.csv

    insert_dataframe(table, dataframe)

    Spark DataFrame を接続されたソースに挿入します。

    データベースおよび一部のプロトコルソース(バケット、Amazon S3、Azure Blob Storage)で利用可能です。 詳細は ユースケース 4 と 5 をご確認ください。

    入力パラメータ

    名前種類説明
    tablestrデータベース内のテーブル名。my_s3_table
    dataframepyspark.sql.DataFrame挿入するデータを含む DataFrame。-

    extract_dataframe(params={})

    ファイルから SparkDataframe を抽出します。ファイル抽出オプションは params または table.parameters で設定できます。

    入力パラメータ

    名前種類説明
    params辞書実行する SQL クエリ構造を含む辞書。デフォルトは空の辞書で、すべての行を取得します。空の辞書: {}

    詳細な例:

     params = {
                    "scale": ["attribute_1", "attribute_2"],
                    "joins": [{
                        "type": "INNER",
                        "table": "table_1",
                        "condition": "table_1.attribute = table_2.attribute"
                    }],
                    "schema": {
                        "attribute_dest": "attribute_source"
                    }
                }

    出力

    種類説明
    pyspark.sql.DataFrameソースデータを含む DataFrame。-

    さらに詳しく知る

    当社のソリューションを実装するためのトレーニングや技術サポートが必要な場合は、営業担当者にお問い合わせください、または このリンク をクリックして、プロフェッショナルサービスの専門家にプロジェクトのカスタム分析を依頼するための見積もりを取得してください。

    Data Platform を構築するチームと直接やり取りし、質問をしたり、フィードバックを送信したり、Discord の専用 チャネル に参加してください。

    OVHcloud サービスについてサポートが必要な場合は、ヘルプセンター でリクエストを作成してください。

    ユーザーコミュニティ に参加してください。

    1: S3 は Amazon Technologies, Inc. の商標です。OVHcloud のサービスは Amazon Technologies, Inc. によってスポンサーされ、承認され、またはその他の方法で提携していません。