Artikel ini menjelaskan cara melakukan passing parameter PyODPS di DataWorks.
Prasyarat
Lakukan langkah-langkah berikut terlebih dahulu:
-
Telah mengaktifkan MaxCompute.
-
Telah mengaktifkan DataWorks.
-
Telah membuat alur kerja di DataWorks. Untuk detailnya, lihat Create a workflow.
Langkah-langkah Operasional
Contoh ini menggunakan mode sederhana DataWorks. Saat membuat workspace, pastikan opsi 参加数据开发(Data Studio)公测 tetap dalam keadaan tidak diaktifkan. Contoh ini tidak berlaku untuk workspace yang mengikuti program uji coba (beta).
-
Siapkan data uji.
-
Buat tabel dan unggah data. Untuk petunjuknya, lihat Create a table and upload data.
Struktur tabel dan informasi data sumber adalah sebagai berikut.
-
Skrip pembuatan tabel partisi user_detail adalah sebagai berikut.
CREATE TABLE IF NOT EXISTS user_detail ( userid BIGINT COMMENT '用户id', job STRING COMMENT '工作类型', education STRING COMMENT '教育程度' ) COMMENT '用户信息表' PARTITIONED BY (dt STRING COMMENT '日期',region STRING COMMENT '地区'); -
Skrip pembuatan tabel data sumber user_detail_ods adalah sebagai berikut.
CREATE TABLE IF NOT EXISTS user_detail_ods ( userid BIGINT COMMENT '用户id', job STRING COMMENT '工作类型', education STRING COMMENT '教育程度', dt STRING COMMENT '日期', region STRING COMMENT '地区' ); -
Data uji disimpan dalam file user_detail.txt. Unggah file ini ke tabel user_detail_ods.
0001,互联网,本科,20190715,beijing 0002,教育,大专,20190716,beijing 0003,金融,硕士,20190715,shandong 0004,互联网,硕士,20190715,beijing
-
-
Tuliskan data dari tabel sumber
user_detail_odske tabel partisiuser_detail.-
Login ke DataWorks Console.
-
Pada panel navigasi kiri, klik Workspace.
-
Konfirmasi ruang kerja target, lalu pada kolom Actions, pilih .
-
Klik kanan pada alur kerja, lalu pilih .
-
Masukkan nama node, lalu klik OK.
-
Masukkan kode berikut ke dalam node ODPS SQL.
INSERT OVERWRITE TABLE user_detail PARTITION (dt, region) SELECT userid, job, education, dt, region FROM user_detail_ods; -
Klik Run untuk menyelesaikan penulisan data.
-
-
-
Lakukan passing parameter menggunakan PyODPS.
-
Login ke DataWorks Console.
-
Pada panel navigasi kiri, klik Workspace.
-
Pastikan workspace target telah dipilih, lalu pilih pada kolom Actions.
-
Pada halaman Data Development, klik kanan pada alur kerja yang telah dibuat, lalu pilih .
-
Masukkan nama node, lalu klik OK.
-
Masukkan kode berikut ke dalam node PyODPS 2 untuk mengimplementasikan passing parameter.
import sys reload(sys) print('dt=' + args['dt']) # Ubah encoding default sistem. sys.setdefaultencoding('utf8') # Dapatkan tabel. t = o.get_table('user_detail') # Terima parameter partisi yang masuk. with t.open_reader(partition='dt=' + args['dt'] + ',region=beijing') as reader1: count = reader1.count print("Kueri data tabel partisi:") for record in reader1: print record[0],record[1],record[2] -
Klik Run with Parameters.
import sys reload(sys) print('dt=' + args['dt']) # Ubah encoding default sistem sys.setdefaultencoding('utf8') # Dapatkan tabel t = o.get_table('user_detail') # Terima parameter partisi yang masuk with t.open_reader(partition='dt=' + args['dt'] + ',region=beijing') as reader1: count = reader1.count print("Kueri data tabel partisi: ") for record in reader1: print record[0],record[1],record[2] -
Isi parameter konfigurasi pada dialog Parameters, lalu klik Run.
Penjelasan konfigurasi parameter sebagai berikut:
-
Resource Group Name: Pilih Shared Resource Group.
-
dt: Atur menjadi dt=20190715.
-
-
Lihat hasil eksekusi di Runtime Log.
Executing user script with PyODPS 0.8.0 dt=20190715 查询分区表数据: 4 互联网 硕士 1 互联网 本科 xxx xxx xxx xxx INFO ===================================================================
-