MaxCompute では、MaxFrame SDK の機能がカプセル化されているオンプレミスの MaxFrame クライアントで MaxFrame を使用できます。このトピックでは、オンプレミス環境で MaxFrame を使用する方法について説明します。
前提条件
MaxFrame を使用する前に、以下の準備が完了していることを確認してください。
Python 3.7 または 3.11 がオンプレミス環境にインストールされている。他のバージョンを使用するとエラーが発生する可能性があります。
pip ツールがオンプレミス環境にインストールされている。 pip ツールが Python のバージョンにプリインストールされていない場合は、Python 公式 Web サイト にアクセスして pip インストールガイドを入手してください。
MaxCompute プロジェクトが作成されている。詳細については、「MaxCompute プロジェクトを作成する」をご参照ください。
MaxFrame のインストール
Windows オペレーティングシステムのコマンドプロンプトなど、システムの CLI で、pip コマンドを実行して MaxFrame クライアントをインストールします。コマンド例:
pip install --upgrade maxframe次のコマンドを実行して、MaxFrame クライアントがインストールされているかどうかを確認します。値またはエラーメッセージが返されない場合、インストールは成功です。
python -c "import maxframe.dataframe as md"エラーが報告された場合は、デフォルトの Python バージョンをクエリし、Python 3.7 または 3.11 に変更します。コマンド例:
# システムのデフォルトの Python バージョンをクエリします。 python --version # システムのデフォルトの Python バージョンを Python 3.7 に変更します。次のコマンドで、$path/python3.7 は Python のインストールパスです。 $path/python3.7 -m pip install setuptools>=3.0
MaxFrame の使用
.pyファイル(例:test.py)をオンプレミス環境に作成し、次のサンプルコードをtest.pyファイルにコピーして、ファイルを保存します。import os import maxframe.dataframe as md from odps import ODPS from maxframe import new_session # MaxCompute エントリを作成します。 o = ODPS( # ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数を Alibaba Cloud アカウントの AccessKey ID に設定します。 # ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を Alibaba Cloud アカウントの AccessKey シークレットに設定します。 # 実際の AccessKey ID と AccessKey シークレットを直接使用しないことをお勧めします。 os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), project='your-default-project', endpoint='your-end-point', ) table = o.create_table("test_source_table", "a string, b bigint", if_not_exists=True) with table.open_writer() as writer: writer.write([ ["value1", 0], ["value2", 1], ]) # MaxFrame セッションを作成します。 session = new_session(o) df = md.read_odps_table("test_source_table",index_col="b") df["a"] = "prefix_" + df["a"] # DataFrame データを出力します。 print(df.execute().fetch()) # MaxFrame DataFrame から MaxCompute テーブルにデータを書き込みます。 md.to_odps_table(df, "test_prefix_source_table").execute() # MaxFrame セッションを破棄します。 session.destroy()パラメータ:
ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET: これらの環境変数を、MaxCompute プロジェクトで管理するオブジェクトに対する MaxCompute 権限 を持つ Alibaba Cloud アカウントの AccessKey ID と AccessKey シークレットに設定します。 アクセスキーのペア ページで Alibaba Cloud 管理コンソール の AccessKey ID を取得できます。
your-default-project: MaxCompute プロジェクトの名前。 MaxCompute プロジェクトの名前を表示するには、MaxCompute コンソール にログインし、左側のナビゲーションウィンドウで [ワークスペース] > [プロジェクト] を選択します。
your_end_point: MaxCompute プロジェクトが存在するリージョンのエンドポイント。詳細については、「エンドポイント」をご参照ください。
test.pyファイルのパスに移動し、ファイルを実行します。コマンド例:python test.py
結果の確認
Python コードを実行し、結果テーブルのデータをクエリします。結果が期待どおりであれば、MaxFrame がインストールされ、MaxCompute に接続されています。
Python コードを実行します。次の結果が返されます。
b a 0 prefix_value1 1 prefix_value2MaxCompute プロジェクトで次の SQL 文を実行して、
test_prefix_source_tableテーブルのデータをクエリします。SELECT * FROM test_prefix_source_table;次の結果が返されます。
+------------+------------+ | b | a | +------------+------------+ | 0 | prefix_value1 | | 1 | prefix_value2 | +------------+------------+