すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:Sequence

最終更新日:May 15, 2025

SequenceExpr は、2 次元データセットの列を表します。SequenceExpr オブジェクトを手動で作成することはできません。コレクションオブジェクトから取得することのみ可能です。

前提条件

列を取得する前に、次の要件が満たされていることを確認してください。

列の取得

  • collection.column_name を使用して列を取得します。コマンドの例:

    print(iris.sepallength.head(5))

    次の結果が返されます。

       sepallength
    0          4.9
    1          4.7
    2          4.6
    3          5.0
    4          5.4
  • 列の名前が文字列変数に格納されている場合は、df[column_name] を使用して列を取得します。コマンドの例:

    print(iris['sepallength'].head(5))

    次の結果が返されます。

       sepallength
    0          4.9
    1          4.7
    2          4.6
    3          5.0
    4          5.4

列の型

DataFrame には独自の型システムがあります。テーブルが初期化されると、MaxCompute のデータ型は DataFrame の関連データ型に変換されます。これにより、より多くの種類のコンピューティングバックエンドがサポートされます。DataFrame 実行バックエンドは、MaxCompute SQL、Pandas、および MySQL や Postgres などのデータベースをサポートしています。

次の表は、DataFrame のデータ型と MaxCompute のデータ型のマッピングを示しています。

MaxCompute のデータ型

DataFrame のデータ型

BIGINT

INT64

DOUBLE

FLOAT64

STRING

STRING

DATETIME

DATETIME

BOOLEAN

BOOLEAN

DECIMAL

DECIMAL

ARRAY<VALUE_TYPE>

LIST<VALUE_TYPE>

MAP<KEY_TYPE, VALUE_TYPE>

DICT<KEY_TYPE, VALUE_TYPE>

options.sql.use_odps2_extension=True を指定すると、次のデータ型間のマッピングもサポートされます。

TINYINT

INT8

SMALLINT

INT16

INT

INT32

FLOAT

FLOAT32

次の点に注意してください。

  • テーブルのフィールドが LIST 型と DICT 型の場合、テーブル内の要素の型を指定する必要があります。要素の型を指定しないと、エラーが発生します。

  • DataFrame は、MaxCompute V2.0 で導入された TIMESTAMP 型と STRUCT 型をサポートしていません。

  • シーケンスオブジェクトで sequence.dtype を使用してデータ型を取得できます。コードの例:

    print(iris.sepallength.dtype)

    次の結果が返されます。

    FLOAT64

  • astype メソッドを使用して、列の型を変更できます。このメソッドを使用する場合、入力値として型が必要であり、変換されたシーケンスオブジェクトが返されます。コードの例:

    print(iris.sepallength.astype('int').head(5))

    次の結果が返されます。

       sepallength
    0            4
    1            4
    2            4
    3            5
    4            5

列名

  • DataFrame コンピューティングでは、シーケンスオブジェクトに列名が必要です。ほとんどの場合、DataFrame は各シーケンスオブジェクトの名前を自動的に作成します。コードの例:

    print(iris.groupby('name').sepalwidth.max().head(5))

    次の結果が返されます。

       sepalwidth_max
    0             4.4
    1             3.4
    2             3.8
    説明

    前の例では、sepalwidth の最大値が取得された後、sepalwidthsepalwidth_max という名前が付けられます。たとえば、指定されたシーケンスオブジェクトにスカラーフィールドを追加すると、返される結果には自動的にシーケンスオブジェクトの名前が付けられます。それ以外の場合は、シーケンスオブジェクトに手動で名前を付ける必要があります。

  • シーケンスオブジェクトは、列の名前を変更するための rename メソッドを提供します。コードの例:

    print(iris.sepalwidth.rename('sepal_width').head(5))

    次の結果が返されます。

       sepal_width
    0          3.0
    1          3.2
    2          3.1
    3          3.6
    4          3.9

列の計算

  • シーケンスに対して演算を実行して、新しいシーケンスを取得できます。この操作は、単純な Python 変数の計算に似ています。数値列の場合、算術演算がサポートされています。文字列列の場合、文字列の連結のみがサポートされています。コードの例:

    print((iris.sepallength + 5).head(5))

    次の結果が返されます。

       sepallength
    0          9.9
    1          9.7
    2          9.6
    3         10.0
    4         10.4
  • 2 つの列を計算に使用する場合、PyODPS は表示される列名を判断できません。列名を手動で指定する必要があります。コードの例:

    print((iris.sepallength + iris.sepalwidth).rename('sum_sepal').head(5))

    次の結果が返されます。

       sum_sepal
    0        7.9
    1        7.9
    2        7.7
    3        8.6
    4        9.3
    説明

    列の計算の詳細については、「列の操作」をご参照ください。