Este tópico descreve como passar parâmetros em um nó PyODPS no DataWorks.
Pré-requisitos
Os seguintes itens são obrigatórios:
O MaxCompute deve estar ativado.
O DataWorks deve estar ativado.
É necessário ter um workflow criado no DataWorks. Para mais informações, consulte Criar um workflow.
Procedimento
Este exemplo utiliza um workspace do DataWorks no modo básico. Ao criar o workspace, não selecione a opção Participate in Public Preview of Data Studio. Este exemplo não se aplica a workspaces em preview público.
-
Prepare os dados de teste.
-
Crie uma tabela e faça upload dos dados. Para mais informações, consulte Criar uma tabela e fazer upload de dados.
A seguir estão os schemas das tabelas e os dados de source.
-
A instrução de criação da tabela particionada user_detail é apresentada abaixo.
CREATE TABLE IF NOT EXISTS user_detail ( userid BIGINT COMMENT 'User ID', job STRING COMMENT 'Job type', education STRING COMMENT 'Education' ) COMMENT 'User information table' PARTITIONED BY (dt STRING COMMENT 'Date',region STRING COMMENT 'Region'); -
A instrução para criar a tabela de source user_detail_ods é apresentada abaixo.
CREATE TABLE IF NOT EXISTS user_detail_ods ( userid BIGINT COMMENT 'User ID', job STRING COMMENT 'Job type', education STRING COMMENT 'Education', dt STRING COMMENT 'Date', region STRING COMMENT 'Region' ); -
Salve os dados de teste no arquivo user_detail.txt. Faça upload desse arquivo para a tabela user_detail_ods.
0001,Internet,Bachelor,20190715,beijing 0002,Education,Associate Degree,20190716,beijing 0003,Finance,Master,20190715,shandong 0004,Internet,Master,20190715,beijing
-
-
Grave os dados da tabela de source
user_detail_odsna tabela particionadauser_detail.Faça login no console do DataWorks.
No painel de navegação à esquerda, clique em Workspace.
Localize o workspace desejado e, na coluna Actions, clique em .
Clique com o botão direito no workflow e escolha .
Insira um nome para o nó e clique em OK.
-
No nó ODPS SQL, insira o código a seguir.
INSERT OVERWRITE TABLE user_detail PARTITION (dt, region) SELECT userid, job, education, dt, region FROM user_detail_ods; Clique em Run para gravar os dados.
-
-
Utilize o PyODPS para passar parâmetros.
Faça login no console do DataWorks.
No painel de navegação à esquerda, clique em Workspace.
Localize o workspace desejado e, na coluna Actions, clique em .
Na página Data Development, clique com o botão direito no workflow criado e escolha .
Insira um nome para o nó e clique em OK.
-
No nó PyODPS 2, insira o código a seguir para passar os parâmetros.
import sys reload(sys) print('dt=' + args['dt']) # Change the default system encoding. sys.setdefaultencoding('utf8') # Get the table. t = o.get_table('user_detail') # Receive the passed partition parameter. with t.open_reader(partition='dt=' + args['dt'] + ',region=beijing') as reader1: count = reader1.count print("Querying data from the partitioned table:") for record in reader1: print record[0],record[1],record[2] -
Clique em Run with Parameters.
import sys reload(sys) print('dt=' + args['dt']) # Change the default system encoding. sys.setdefaultencoding('utf8') # Get the table. t = o.get_table('user_detail') # Receive the passed partition parameter. with t.open_reader(partition='dt=' + args['dt'] + ',region=beijing') as reader1: count = reader1.count print("Querying data from the partitioned table:") for record in reader1: print record[0],record[1],record[2] -
Na caixa de diálogo Parameters, configure os parâmetros e clique em Run.
Configure os seguintes parâmetros:
Resource Group Name: Selecione Shared Resource Group.
dt: Defina como dt=20190715.
-
Visualize os resultados da execução no Runtime Log.
Executing user script with PyODPS 0.8.0 dt=20190715 Querying data from the partitioned table: 4 Internet Master 1 Internet Bachelor xxx xxx xxx xxx INFO ===================================================================