Cette rubrique explique comment transmettre des paramètres dans un nœud PyODPS au sein de DataWorks.
Prérequis
Assurez-vous d'avoir :
MaxCompute activé.
DataWorks activé.
Créé un workflow dans DataWorks. Pour plus d'informations, consultez la rubrique Création d'un workflow.
Procédure
Cet exemple utilise un espace de travail DataWorks en mode basique. Lors de la création de l'espace de travail, ne sélectionnez pas l'option Participate in Public Preview of Data Studio. Cet exemple ne s'applique pas aux espaces de travail en aperçu public.
-
Préparez les données de test.
-
Créez une table et importez des données. Pour plus d'informations, consultez la rubrique Création d'une table et importation de données.
Voici les schémas de table et les données source.
-
L'instruction de création de la table partitionnée user_detail est la suivante :
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'); -
L'instruction de création de la table source user_detail_ods est la suivante :
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' ); -
Enregistrez les données de test dans le fichier user_detail.txt. Importez ce fichier dans la table user_detail_ods.
0001,Internet,Bachelor,20190715,beijing 0002,Education,Associate Degree,20190716,beijing 0003,Finance,Master,20190715,shandong 0004,Internet,Master,20190715,beijing
-
-
Écrivez les données de la table source
user_detail_odsvers la table partitionnéeuser_detail.Connectez-vous à la console DataWorks.
Dans le volet de navigation de gauche, cliquez sur Workspace.
Repérez l'espace de travail cible et, dans la colonne Actions, cliquez sur .
Faites un clic droit sur le workflow et choisissez .
Saisissez un nom de nœud et cliquez sur OK.
-
Dans le nœud ODPS SQL, saisissez le code suivant :
INSERT OVERWRITE TABLE user_detail PARTITION (dt, region) SELECT userid, job, education, dt, region FROM user_detail_ods; Cliquez sur Run pour écrire les données.
-
-
Utilisez PyODPS pour transmettre des paramètres.
Connectez-vous à la console DataWorks.
Dans le volet de navigation de gauche, cliquez sur Workspace.
Repérez l'espace de travail cible et, dans la colonne Actions, cliquez sur .
Sur la page Data Development, faites un clic droit sur le workflow créé et choisissez .
Saisissez un nom de nœud et cliquez sur OK.
-
Dans le nœud PyODPS 2, saisissez le code suivant pour transmettre les paramètres :
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] -
Cliquez sur 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] -
Dans la boîte de dialogue Parameters, configurez les paramètres et cliquez sur Run.
Configurez les paramètres suivants :
Resource Group Name : sélectionnez Shared Resource Group.
dt : définissez la valeur sur dt=20190715.
-
Consultez les résultats d'exécution dans le journal 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 ===================================================================