tencent cloud

Data Lake Compute

製品概要
プロダクト概要
製品の強み
適用シーン
購入ガイド
課金概要
返金説明
支払い期限切れ説明
設定調整費用の説明
クイックスタート
新規ユーザー開通フルプロセス
DLC データインポートガイド
DLCデータ分析の1分間入門
DLC権限管理の1分間入門
パーティションテーブル1分間入門
データ最適化をオンにする
クロスソース分析 EMR Hive データ
標準エンジン構成ガイド
操作ガイド
コンソール操作紹介
開発ガイド
実行環境
SparkJar ジョブ開発ガイド
PySparkジョブ開発ガイド
「クエリパフォーマンス最適化ガイド」
UDF 関数開発ガイド
システム制約
クライアントアクセス
JDBCアクセス
TDLC コマンドラインツールにアクセス
サードパーティソフトウェア連携
Python にアクセス
実践チュートリアル
DLC を Power BI に接続
テーブル作成の実践
Apache Airflowを使用してDLCエンジンのタスクをスケジュールして送信する
StarRocks は DLC 内部ストレージを直接クエリします
Spark の計算コスト最適化プラクティス
DATA + AI
ロールSSOを使用してDLCにアクセスする
SQL構文
SuperSQL構文
標準 Spark 構文概要
標準 Presto 構文の概要
予約語
API Documentation
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
一般クラスリファレンス
エラーコード
クォータと制限
サードパーティソフトウェアでDLCに接続する操作ガイド
よくあるご質問
権限に関するよくあるご質問
エンジン類のよくある質問
機能に関するよくあるご質問
Sparkジョブクラスに関するよくある質問
DLC ポリシー
プライバシーポリシー
データプライバシーとセキュリティ契約
お問い合わせ

PySpark依存パッケージ管理

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-24 11:41:30
現在のDLCのPySpark基本実行環境ではPython=3.9.2を使用しています。
SparkジョブのPython依存関係は以下の2つの方法で利用できます:
1. --py-filesを使用して依存モジュールやファイルを指定します。
2. --archivesを使用して仮想環境を指定します。
もしモジュールやファイルが純粋なPythonで実装されている場合、--py-filesを使用して指定することをお勧めします。
--archivesを使用すると、開発テスト環境全体を直接パッケージ化して使用できます。この方法はC関連の依存関係のコンパイルインストールをサポートしており、依存環境が比較的複雑な場合に推奨されます。
説明:
上記の2つの方法は、ご要望に応じて同時に使用できます。

--py-filesを使用して依存パッケージを指定します。

この方法は、Cの依存関係を含まない純粋なPythonで実装されたモジュールやファイルに適しています。

ステップ1:モジュール/ファイルをパッケージ化する

PyPI外部パッケージは、ローカル環境でpipコマンドを使用してインストールし、一般的な依存関係をパッケージ化する必要があります。依存パッケージは純粋なPythonで実装され、C関連ライブラリに依存しないことが求められます。
pip install -i https://mirrors.tencent.com/pypi/simple/ <packages...>  -t dep

cd dep

zip -r ../dep.zip .
単一ファイルモジュール(funtions.py)とカスタムPythonモジュールは、上記の方法でパッケージ化できます。ただし、カスタムPythonモジュールはPythonの公式要件に従って標準化する必要があることに注意してください。詳細はPython公式ドキュメントPython Packaging User Guideを参照してください。

ステップ2:パッケージ化されたモジュールを導入する

データレイク DLC コンソールのデータジョブモジュールで新しいジョブを作成します。--py-filesパラメータでパッケージ化されたdep.zipファイルを導入します。このファイルはCOSにアップロードするか、ローカルからアップロードする方法で導入できます。 

仮想環境を使用する

仮想環境は、一部のPython依存パッケージがCに依存する問題を解決できます。ユーザーは必要に応じて、依存パッケージをコンパイルして仮想環境にインストールし、その後仮想環境全体をアップロードできます。 C関連の依存関係はコンパイルとインストールを伴うため、x86アーキテクチャのマシン、Debian 11(bullseye)システム、Python = 3.9.2環境を使用してパッケージ化することを推奨します。

手順1:仮想環境をパッケージ化する

仮想環境をパッケージ化するには、Venvを使用する方法とCondaを使用する方法の2通りがあります。
1. Venvを使用してパッケージ化する
python3 -m venv pyvenv

source pyvenv/bin/activate

(pyvenv)> pip3 install -i [https://mirrors.tencent.com/pypi/simple/](https://mirrors.tencent.com/pypi/simple/) packages

(pyvenv)> deactivate

tar czvf pyvenv.tar.gz pyvenv/
2. Condaを使用してパッケージ化します。
conda create -y -n pyspark_env conda-pack <packages...> python=<3.9.x>
conda activate pyspark_env
conda pack -f -o pyspark_env.tar.gz
パッケージ化が完了したら、パッケージ化された仮想環境パッケージpyvenv.tar.gzをcosにアップロードします。
注意:
tarコマンドを使用してパッケージ化してください。
3. パッケージ化スクリプトを使用します。
パッケージ化スクリプトを使用するには、docker環境をインストールする必要があります。現在、Linux/mac環境をサポートしています。
bash pyspark_env_builder.sh -h
Usage:

pyspark-env-builder.sh [-r] [-n] [-o] [-h]
-r ARG, the requirements for python dependency.
-n ARG, the name for the virtual environment.
-o ARG, the output directory. [default:current directory]
-h, print the help info.
パラメータ
説明
-r
requirements.txtの場所を指定
-n
仮想環境の名前を指定、デフォルトは py3env
-o
仮想環境の保存先ローカルディレクトリを指定、デフォルトは現在のディレクトリ
-h
ヘルプ情報を印刷
# requirement.txt
requests

以下のコマンドを実行してください
bash pyspark_env_builder.sh -r requirement.txt -n py3env
スクリプトの実行が完了したら、現在のディレクトリでpy3env.tar.gzを取得し、そのファイルをcosにアップロードできます。

ステップ2:仮想環境を指定する

データレイク DLC コンソールのデータジョブモジュールで新しいジョブを作成し、以下のスクリーンショットを参考に操作してください。
1. --archivesパラメータに仮想環境の完全なパスを入力し、#の後ろは解凍フォルダ名です。

注意:
「#」は解凍先ディレクトリを指定するために使用されます。解凍先ディレクトリは後続の実行環境パラメータ設定に影響を与えます。
2. --configパラメータで実行環境パラメータを指定します。

Venv パッケージ方式を使用する場合は、spark.pyspark.python = venv/pyspark_venv/bin/python3を設定してください。
Conda パッケージ方式を使用する場合は、spark.pyspark.python = venv/bin/python3を設定してください。
スクリプトパッケージ方式を使用する場合は、spark.pyspark.python = venv/bin/python3を設定してください。
説明:
venvとcondaはパッケージ方式が異なるため、ディレクトリ階層が異なります。具体的には、.tar.gzを解凍してpythonファイルの相対パスを確認できます。


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック