全部产品
Search
文档中心

MaxCompute:Urutan

更新时间:Jul 02, 2025

SequenceExpr merepresentasikan kolom dalam dataset dua dimensi. Anda tidak dapat membuat objek SequenceExpr secara manual, melainkan harus mengambilnya dari objek koleksi.

Prasyarat

Sebelum mengambil kolom, pastikan persyaratan berikut telah dipenuhi:

Ambil kolom

  • Gunakan collection.nama_kolom untuk mengambil kolom. Contoh perintah:

    print(iris.sepallength.head(5))

    Hasil berikut dikembalikan:

       sepallength
    0          4.9
    1          4.7
    2          4.6
    3          5.0
    4          5.4
  • Jika nama kolom disimpan dalam variabel string, gunakan df[nama_kolom] untuk mengambil kolom. Contoh perintah:

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

    Hasil berikut dikembalikan:

       sepallength
    0          4.9
    1          4.7
    2          4.6
    3          5.0
    4          5.4

Tipe kolom

DataFrame memiliki sistem tipe tersendiri. Saat tabel diinisialisasi, tipe data MaxCompute dikonversi ke tipe data terkait dari DataFrame. Hal ini memungkinkan dukungan untuk berbagai backend komputasi. Backend eksekusi DataFrame mendukung SQL MaxCompute, Pandas, serta database seperti MySQL dan Postgres.

Tabel berikut menjelaskan pemetaan antara tipe data DataFrame dan tipe data MaxCompute.

Tipe data MaxCompute

Tipe data 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>

Jika Anda menentukan options.sql.use_odps2_extension=True, pemetaan antara tipe data berikut juga didukung.

TINYINT

INT8

SMALLINT

INT16

INT

INT32

FLOAT

FLOAT32

Perhatikan poin-poin berikut:

  • Jika bidang dalam tabel bertipe LIST atau DICT, Anda harus menentukan tipe elemen dalam tabel. Jika tidak, kesalahan akan terjadi.

  • DataFrame tidak mendukung tipe TIMESTAMP dan STRUCT yang diperkenalkan di MaxCompute V2.0.

  • Anda dapat memperoleh tipe data menggunakan sequence.dtype dalam objek urutan. Contoh kode:

    print(iris.sepallength.dtype)

    Hasil berikut dikembalikan:

    FLOAT64

  • Anda dapat menggunakan metode astype untuk mengubah tipe kolom. Metode ini memerlukan tipe sebagai nilai input dan mengembalikan objek urutan yang telah dikonversi. Contoh kode:

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

    Hasil berikut dikembalikan:

       sepallength
    0            4
    1            4
    2            4
    3            5
    4            5

Nama kolom

  • Dalam komputasi DataFrame, objek urutan harus memiliki nama kolom. Dalam sebagian besar kasus, DataFrame secara otomatis memberikan nama untuk setiap objek urutan. Contoh kode:

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

    Hasil berikut dikembalikan:

       sepalwidth_max
    0             4.4
    1             3.4
    2             3.8
    Catatan

    Dalam contoh sebelumnya, sepalwidth dinamai sepalwidth_max setelah nilai maksimum sepalwidth diperoleh. Sebagai contoh, jika Anda menambahkan bidang skalar ke objek urutan tertentu, hasil yang dikembalikan secara otomatis diberi nama sesuai dengan nama objek urutan. Dalam kasus lain, Anda perlu menamai objek urutan secara manual.

  • Objek urutan menyediakan metode rename untuk menamai ulang kolom. Contoh kode:

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

    Hasil berikut dikembalikan:

       sepal_width
    0          3.0
    1          3.2
    2          3.1
    3          3.6
    4          3.9

Kalkulasi kolom

  • Anda dapat melakukan operasi pada urutan untuk mendapatkan urutan baru. Operasi ini mirip dengan kalkulasi variabel Python sederhana. Untuk kolom numerik, operasi aritmatika didukung. Untuk kolom string, hanya penggabungan string yang didukung. Contoh kode:

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

    Hasil berikut dikembalikan:

       sepallength
    0          9.9
    1          9.7
    2          9.6
    3         10.0
    4         10.4
  • Jika dua kolom digunakan untuk kalkulasi, PyODPS tidak dapat menentukan nama kolom yang ditampilkan. Anda harus menentukan nama kolom secara manual. Contoh kode:

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

    Hasil berikut dikembalikan:

       sum_sepal
    0        7.9
    1        7.9
    2        7.7
    3        8.6
    4        9.3
    Catatan

    Untuk informasi lebih lanjut tentang kalkulasi kolom, lihat Operasi Kolom.