本文為您介紹如何通過PyODPS讀取分區表資料。
前提條件
您需要完成以下操作:
-
在DataWorks上完成商務程序建立。詳情請參見建立商務程序。
操作步驟
說明
本例使用DataWorks簡單模式,建立工作空間時,預設保持 參加資料開發(Data Studio)公測 不開啟,公測工作空間不適用本例。
-
準備測試資料。
-
建立表並上傳資料。操作方法請參見建表並上傳資料。
表結構以及來源資料資訊如下。
-
分區表user_detail建表語句如下。
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 '地區'); -
來源資料表user_detail_ods建表語句如下。
CREATE TABLE IF NOT EXISTS user_detail_ods ( userid BIGINT COMMENT '使用者id', job STRING COMMENT '工作類型', education STRING COMMENT '教育程度', dt STRING COMMENT '日期', region STRING COMMENT '地區' ); -
測試資料儲存為user_detail.txt檔案。將此檔案上傳至表user_detail_ods中。
0001,互連網,本科,20190715,beijing 0002,教育,大專,20190716,beijing 0003,金融,碩士,20190715,shandong 0004,互連網,碩士,20190715,beijing
-
-
將來源資料表
user_detail_ods中的資料寫入分區表user_detail。-
登入DataWorks控制台。
-
在左側導覽列,單擊工作空間。
-
確認目標工作空間,選擇操作列中的。
-
按右鍵商務程序,選擇。
-
輸入節點名稱,並單擊确认。
-
在ODPS SQL節點中輸入如下代碼。
INSERT OVERWRITE TABLE user_detail PARTITION (dt, region) SELECT userid, job, education, dt, region FROM user_detail_ods; -
單擊运行,完成資料寫入。
-
-
-
使用PyODPS讀取分區表資料。
-
登入DataWorks控制台。
-
在左側導覽列,單擊工作空間。
-
確認目標工作空間,選擇操作列中的。
-
在数据开发頁面,按右鍵已經建立的商務程序,選擇。
-
輸入節點名稱,單擊确认。
-
在PyODPS 2節點中輸入如下代碼讀取分區表資料。
import sys from odps import ODPS reload(sys) print('dt=' + args['dt']) #修改系統預設編碼。 sys.setdefaultencoding('utf8') #個人資訊憑證。 t = o.get_table('user_detail') #擷取分區表。 print t.exist_partition('dt=20190715,region=beijing') #查看所有分區。 for partition in t.partitions: print partition.name #您可以通過以下三種方式查詢分區表資料。 #第一種方式如下。 with t.open_reader(partition='dt=20190715,region=beijing') as reader1: count = reader1.count print("第一種方式查詢分區表資料:") for record in reader1: print record[0],record[1],record[2] #第二種方式如下。 print("第二種方式查詢分區表資料:") reader2 = t.open_reader(partition='dt=20190715,region=beijing') for record in reader2: print record["userid"],record["job"],record["education"] #第三種方式如下。 print("第三種方式查詢分表資料:") for record in o.read_table('user_detail', partition='dt=20190715,region=beijing'): print record["userid"],record["job"],record["education"] -
單擊帶參運行。
-
在參數對話方塊填寫配置參數,單擊运行。
配置參數說明如下:
-
资源组名称:選擇默認資源組。
-
dt:設定為dt=20190715。
-
-
在運行日誌中查看運行結果。
Executing user script with PyODPS 0.8.0 dt=20190715 True dt='20190715',region='beijing' dt='20190715',region='shandong' dt='20190716',region='beijing' 第一種方式查詢分區表資料: 4 互連網 碩士 1 互連網 本科 第二種方式查詢分區表資料: 4 互連網 碩士 1 互連網 本科 第三種方式查詢分表資料: 4 互連網 碩士 1 互連網 本科
-