このトピックでは、セッション、入出力、実行、フェッチAPIなど、MaxFrameに固有のいくつかの種類のAPIについて説明します。 これらのAPIは、MaxFrameタスクでデータを処理するために使用されます。
セッション関連API
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
String
任意
セッション識別子。
このパラメーターは、新しいセッションの一意の識別子を指定するために使用されます。 このパラメーターを指定しない場合、MaxFrameはデフォルトの識別子を自動的に生成します。
default
ブール値
選択可能
作成したセッションをデフォルトセッションとして使用するかどうかを指定します。
デフォルト値は True です。
new
ブール値
選択可能
セッションを作成するかどうかを指定します。
デフォルト値は True です。 このパラメーターがFalseに設定されている場合、既存のセッションはsession_idに基づいて再利用されます。
odps_entry
ODPS
必須
MaxComputeエントリオブジェクト。 詳細については、「MaxComputeエントリポイントの作成」をご参照ください。
戻り値
セッションオブジェクト。
サンプルコード
from maxframe import new_session from odps import ODPS # Use the MaxFrame account to initialize MaxCompute. o = ODPS( # Set the environment variable ALIBABA_CLOUD_ACCESS_KEY_ID to the AccessKey ID of your Alibaba Cloud account. # Set the environment variable ALIBABA_CLOUD_ACCESS_KEY_SECRET to the AccessKey secret of your Alibaba Cloud account. # We recommend that you do not directly use the actual AccessKey ID and AccessKey secret. os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), project='your-default-project', endpoint='your-end-point', ) # Initialize the MaxFrame session. 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
文字列 /テーブル
必須
データを読み取るMaxComputeテーブルまたはテーブルオブジェクトの名前。
partitions
文字列 /リスト
選択可能
データを読み取る対象のテーブルパーティションまたはパーティションリスト。
このパラメーターの値は、
<partition_name >=< partition_value>
形式です。 このパラメーターを指定しない場合、テーブル内のすべてのパーティションのデータが読み取られます。columns
List
選択可能
データを読み取る列の名前。
このパラメータの値は、
<column1> 、<column2> 、...
形式を指定します。 このパラメーターを指定しない場合、パーティションキー列を除くテーブル内のすべての列のデータが読み取られます。index_col
文字列 /リスト
選択可能
インデックスとして使用される列の名前。
odps_entry
ODPS
選択可能
MaxComputeエントリオブジェクト。 詳細については、「MaxComputeエントリポイントの作成」をご参照ください。
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()) # Return value 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
String
必須
読みたいMaxCompute SQL文。
odps_entry
ODPS
選択可能
MaxComputeエントリオブジェクト。 詳細については、「MaxComputeエントリポイントの作成」をご参照ください。
index_col
文字列 /リスト
選択可能
インデックスとして使用される列の名前。
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
文字列 /テーブル
必須
DataFrameデータを書き込むテーブルまたはテーブルオブジェクトの名前。
partition
String
任意
データの書き込み先のパーティション。
例:
pt1=xxx, pt2=yyy
partition_col
文字列 /リスト
選択可能
DataFrameでパーティションキー列として使用される列の名前。
overwrite
ブール値
選択可能
テーブルまたはパーティションがすでに存在する場合、データを上書きするかどうかを指定します。
デフォルト値:False。
unknown_as_string
ブール値
選択可能
認識されない型のデータをSTRINGデータ型として処理するかどうかを指定します。
デフォルト値:False。 このパラメーターがTrueに設定されている場合、DataFrameのオブジェクト型はSTRINGデータ型として処理されます。 エラーが発生する可能性があります。
index
ブール値
選択可能
インデックスを保存するかどうかを指定します。
デフォルト値は True です。
index_label
文字列 /リスト
選択可能
インデックスに指定された列の名前。
インデックス列の名前は、index_labelパラメーターで指定します。 このパラメーターを指定しない場合、デフォルトの名前インデックスが使用されます。 1レベルのインデックスのみが存在する場合、インデックスはデフォルトでindexという名前になります。 マルチレベルインデックスが存在する場合、各インデックスの名前はlevel_xです。 xはインデックスのレベルです。
ライフサイクルの設定 (Set 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)
実行
execute
API名: execute。 ソースコードの詳細については、「execute」をご参照ください。
execute( session: SessionType = None )
説明: executeメソッドを呼び出して、データ処理タスクを開始します。
入力パラメーター
パラメーター
データ型
必須
説明
セッション
セッション
選択可能
データ処理タスクの実行に使用されるセッション。 セッションの作成方法の詳細については、「new_session」をご参照ください。
このパラメーターを指定しない場合、new_sessionを使用して初期化されたグローバルセッションが使用されます。
戻り値
非該当
サンプルコード
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 )
説明: 結果データをオンプレミス環境に返します。
入力パラメーター
パラメーター
データ型
必須
説明
セッション
セッション
選択可能
結果データを取得するために使用されるセッション。 セッションの作成方法の詳細については、「new_session」をご参照ください。
このパラメーターを指定しない場合、new_sessionを使用して初期化されたグローバルセッションが使用されます。
戻り値
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') res = df.execute().fetch() print(res) # Obtain the returned result. 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]