このトピックでは、Session、Input/Output、Execute、Fetch など、MaxFrame に固有の API について説明します。これらの API は、MaxFrame タスクでデータを処理するための便利な方法を提供します。
セッション
new_session
API 名: new_session。ソースコードの詳細については、「new_session」をご参照ください。
new_session( session_id: str = None, default: bool = True, new: bool = True, odps_entry: Optional[ODPS] = None )説明: MaxFrame タスクセッションを開始します。
入力パラメーター
パラメーター
データの型
必須
説明
session_id
文字列
いいえ
セッション識別子。
このパラメーターは、新しいセッションの一意の識別子を指定するために使用されます。このパラメーターが指定されていない場合、MaxFrame は自動的にデフォルトの識別子を生成します。
default
ブール値
いいえ
作成されたセッションをデフォルトセッションとして使用するかどうかを指定します。
デフォルト値: True。
new
ブール値
いいえ
セッションを作成するかどうかを指定します。
デフォルト値: True。このパラメーターを False に設定すると、session_id に基づいて既存のセッションが再利用されます。
odps_entry
ODPS
はい
MaxCompute のエントリーオブジェクト。詳細については、「MaxCompute エントリーポイントの作成」をご参照ください。
戻り値
セッションオブジェクト。
コード例
from maxframe import new_session from odps import ODPS # MaxFrame アカウントを使用して MaxCompute を初期化します。 o = ODPS( # 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID を Alibaba Cloud アカウントの AccessKey ID に設定します。 # 環境変数 ALIBABA_CLOUD_ACCESS_KEY_SECRET を Alibaba Cloud アカウントの AccessKey Secret に設定します。 # 実際の AccessKey ID と AccessKey Secret を直接使用しないことをお勧めします。 os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), project='your-default-project', endpoint='your-end-point', ) # MaxFrame セッションを初期化します。 session = new_session(odps_entry=o)
入出力関連の API
read_odps_table
API 名: read_odps_table。ソースコードの詳細については、「read_odps_table」をご参照ください。
read_odps_table( table_name: Union[str, Table], partitions: Union[None, str, List[str]] = None, columns: Optional[List[str]] = None, index_col: Union[None, str, List[str]] = None, odps_entry: ODPS = None, string_as_binary: bool = None, append_partitions: bool = False )説明: MaxCompute テーブルからデータを読み取り、DataFrame オブジェクトを構築します。特定の列をインデックスとして指定できます。インデックスを指定しない場合、RangeIndex が生成されます。
入力パラメーター
パラメーター
データの型
必須
説明
table_name
String/Table
はい
データを読み取る MaxCompute テーブルまたはテーブルオブジェクトの名前。
partitions
String/List
いいえ
データを読み取るテーブルパーティションまたはパーティションリスト。
フォーマットは
<partition_name>=<partition_value>です。このパラメーターを指定しない場合、テーブル内のすべてのパーティションからデータが読み取られます。columns
リスト
いいえ
データを読み取る列の名前。
フォーマットは
<column1>, <column2>, ...です。このパラメーターを指定しない場合、パーティションキー列を除くすべての列からデータが読み取られます。index_col
String/List
いいえ
インデックスとして使用される列の名前。
odps_entry
ODPS
いいえ
ODPS エントリーオブジェクト。詳細については、「ODPS エントリーポイントの初期化」をご参照ください。
string_as_binary
ブール値
いいえ
文字列データをバイナリ形式で読み取るかどうかを指定します。
append_partitions
ブール値
いいえ
パーティションキー列からデータを読み取るかどうかを指定します。
デフォルト値は False です。このパラメーターを True に設定し、
columnsパラメーターが指定されていない場合、パーティションキー列を含むすべての列からデータが読み取られます。戻り値
DataFrame オブジェクト。
コード例
import maxframe.dataframe as md df = md.read_odps_table('BIGDATA_PUBLIC_DATASET.data_science.maxframe_ml_100k_users', index_col='user_id', columns=['age', 'sex']) print(df.execute().fetch()) # 戻り値 user_id age sex 1 24 M 2 53 F 3 23 M 4 24 M 5 33 F ... ... ... 939 26 F 940 32 M 941 20 M 942 48 F 943 22 M
read_odps_query
API 名: read_odps_query。ソースコードの詳細については、「read_odps_query」をご参照ください。
read_odps_query( query: str, odps_entry: ODPS = None, index_col: Union[None, str, List[str]] = None, string_as_binary: bool = None )説明: MaxCompute SQL クエリからデータを読み取り、DataFrame オブジェクトを作成します。特定の列をインデックスとして指定できます。インデックスを指定しない場合、RangeIndex が生成されます。
入力パラメーター
パラメーター
データの型
必須
説明
query
文字列
はい
読み取る MaxCompute SQL 文。
odps_entry
ODPS
いいえ
MaxCompute エントリーオブジェクト。詳細については、「MaxCompute エントリーポイントの作成」をご参照ください。
index_col
String/List
いいえ
インデックスとして使用される列の名前。
string_as_binary
ブール値
いいえ
文字列データをバイナリ形式で読み取るかどうかを指定します。
戻り値
DataFrame オブジェクト。
コード例
import maxframe.dataframe as md df = md.read_odps_query('select user_id, age, sex FROM `BIGDATA_PUBLIC_DATASET.data_science.maxframe_ml_100k_users`')
to_odps_table
API 名: to_odps_table。ソースコードの詳細については、「to_odps_table」をご参照ください。
to_odps_table( table: Union[Table, str], partition: Optional[str] = None, partition_col: Union[None, str, List[str]] = None, overwrite: bool = False, unknown_as_string: Optional[bool] = None, index: bool = True, index_label: Union[None, str, List[str]] = None, lifecycle: Optional[int] = None )説明: DataFrame オブジェクトを MaxCompute テーブルに書き込みます。テーブルが MaxCompute に存在しない場合、MaxFrame は自動的にテーブルを作成します。
入力パラメーター
パラメーター
データの型
必須
説明
table
String/Table
はい
DataFrame データを書き込むテーブルまたはテーブルオブジェクトの名前。
partition
文字列
いいえ
データを書き込むパーティション。
例:
pt1=xxx, pt2=yyy。partition_col
String/List
いいえ
DataFrame でパーティションキー列として使用される列の名前。
overwrite
ブール値
いいえ
テーブルまたはパーティションが既に存在する場合にデータを上書きするかどうかを指定します。
デフォルト値: False。
unknown_as_string
ブール値
いいえ
認識されない型のデータを STRING データ型として処理するかどうかを指定します。
デフォルト値: False。このパラメーターを True に設定すると、DataFrame のオブジェクトタイプは STRING データ型として処理されます。エラーが発生する可能性があります。
index
ブール値
いいえ
インデックスを格納するかどうかを指定します。
デフォルト値: True。
index_label
String/List
いいえ
インデックスに指定された列の名前。
インデックス列の名前は index_label パラメーターで指定します。このパラメーターを指定しない場合、デフォルト名 `index` が使用されます。単一レベルのインデックスの場合、名前はデフォルトで `index` になります。複数レベルのインデックスの場合、名前は `level_x` となります。ここで x はインデックスのレベルです。
lifecycle
int
いいえ
出力テーブルのライフサイクル。
このパラメーターの値は正の整数です。テーブルが既に存在する場合、このパラメーターの設定は元のパラメーター設定を上書きします。
戻り値
DataFrame オブジェクト。
例
import maxframe.dataframe as md df = md.read_odps_query('select user_id, age, sex FROM `BIGDATA_PUBLIC_DATASET.data_science.maxframe_ml_100k_users`', index_col='user_id')) ouput_df = df.to_odps_table('output_table', lifecycle = 7)
to_odps_model
API 名: to_odps_model。
to_odps_model( model_name: str, model_version: str = None, schema: str = None, project: str = None, description: Optional[str] = None, version_description: Optional[str] = None, create_model: bool = True, set_default_version: bool = False )説明: MaxFrame ジョブによってトレーニングされた XGBoost モデルを MaxCompute モデルオブジェクトとして保存します。
入力パラメーター
パラメーター
データの型
必須
説明
model_name
文字列
はい
モデル名。
ジョブで
projectとschemaが個別に指定されている場合は、モデル名のみを指定します。それ以外の場合は、モデル名をproject.schema.model形式で指定します。
model_version
文字列
いいえ
モデルバージョン。
このパラメーターを指定しない場合、システムは自動的にバージョンを生成します。
schema
文字列
いいえ
モデルが属するスキーマ。
このパラメーターを指定しない場合、デフォルトのスキーマは "default" です。
project
文字列
いいえ
モデルが属するプロジェクト。
description
文字列
いいえ
モデルの説明。
version_description
文字列
いいえ
モデルバージョンの説明。
create_model
ブール値
いいえ
モデルが存在しない場合に自動的に作成するかどうかを指定します。
デフォルト値: True。
set_default_version
ブール値
いいえ
現在のバージョンをモデルのデフォルトバージョンとして設定するかどうかを指定します。
デフォルト値: False。
戻り値
Scalar オブジェクト。
.execute()を呼び出して、モデルの保存操作をトリガーできます。例
# XGBoost モデルをトレーニングする from maxframe.learn.contrib.xgboost import XGBClassifier X_df = md.DataFrame(X, columns=cols) clf = XGBClassifier(n_estimators=10) clf.fit(X_df, y) # モデルを MaxCompute に保存する clf.to_odps_model( model_name="my_model", # プロジェクトとスキーマを指定する場合、model_name のフォーマットは次のようになります: # model_name="project.schema.my_model" model_version="version1" ).execute()
実行
execute
API 名: execute。ソースコードの詳細については、「execute」をご参照ください。
execute( session: SessionType = None )説明: execute メソッドを呼び出して、データ処理タスクを開始します。
入力パラメーター
パラメーター
データの型
必須
説明
session
Session
いいえ
データ処理タスクを実行するために使用されるセッション。セッションの作成方法の詳細については、「new_session」をご参照ください。
このパラメーターが指定されていない場合、new_session を使用して初期化されたグローバルセッションが使用されます。
戻り値
N/A。
例
import maxframe.dataframe as md df = md.read_odps_query('select user_id, age, sex FROM BIGDATA_PUBLIC_DATASET.data_science.maxframe_ml_100k_users', index_col='user_id')) df.execute()
フェッチ
fetch
API 名: fetch。ソースコードの詳細については、「fetch」をご参照ください。
fetch( session: SessionType = None )説明: 結果データをオンプレミス環境に返します。
入力パラメーター
パラメーター
データの型
必須
説明
session
Session
いいえ
結果データを取得するために使用されるセッション。セッションの作成方法の詳細については、「new_session」をご参照ください。
このパラメーターが指定されていない場合、new_session を使用して初期化されたグローバルセッションが使用されます。
戻り値
Pandas の DataFrame または Series。
コード例
import maxframe.dataframe as md df = md.read_odps_query('select user_id, age, sex FROM `BIGDATA_PUBLIC_DATASET.data_science.maxframe_ml_100k_users`', index_col='user_id') res = df.execute().fetch() print(res) # 返された結果を取得します。 user_id age sex 1 24 M 2 53 F 3 23 M 4 24 M 5 33 F ... ... .. 939 26 F 940 32 M 941 20 M 942 48 F 943 22 M [943 rows x 2 columns]