Tous les produits
Search
Centre de documentation

MaxCompute:Interroger une partition de premier niveau avec PyODPS

Dernière mise à jour :Aug 10, 2026

Cette rubrique explique comment interroger une partition de premier niveau à l'aide de PyODPS.

Prérequis

Assurez-vous que les conditions suivantes sont remplies :

Procédure

Remarque

Cet exemple utilise le mode basic mode de DataWorks. Lors de la création d'un espace de travail, l'option Participate in Public Preview of DataStudio est désactivée par défaut. Cet exemple ne s'applique pas aux espaces de travail en préversion publique.

  1. Préparez les données de test.

    1. Créez une table et chargez les données. Pour plus d'informations, consultez la rubrique Créer une table et charger des 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. Chargez 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
    2. Écrivez les données de la table source user_detail_ods vers la table partitionnée user_detail.

      1. Connectez-vous à la console DataWorks.

      2. Dans le volet de navigation de gauche, cliquez sur Workspace.

      3. Recherchez l'espace de travail cible et, dans la colonne Actions, cliquez sur Shortcuts > Data Development.

      4. Faites un clic droit sur le workflow et choisissez Create Node > ODPS SQL.

      5. Saisissez un nom de nœud et cliquez sur OK.

      6. 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;
      7. Cliquez sur Run pour écrire les données.

  2. Interrogez la partition de premier niveau à l'aide de PyODPS.

    1. Connectez-vous à la console DataWorks.

    2. Dans le volet de navigation de gauche, cliquez sur Workspace.

    3. Recherchez l'espace de travail cible et, dans la colonne Actions, cliquez sur Shortcuts > Data Development.

    4. Sur la page Data Development, faites un clic droit sur le workflow que vous avez créé et choisissez Create Node > PyODPS 2.

    5. Saisissez un nom de nœud et cliquez sur OK.

    6. Saisissez le code suivant pour interroger la partition de premier niveau de trois manières différentes : de manière asynchrone, synchrone et à l'aide d'un DataFrame.

      import sys
      reload(sys)
      # Set the default system encoding to utf8.
      sys.setdefaultencoding('utf8')
      # Read the level-1 partition asynchronously.
      instance = o.run_sql('select * from user_detail WHERE dt=\'20190715\'')
      instance.wait_for_success()
      for record in instance.open_reader():
          print record["userid"],record["job"],record["education"]
      # Read the level-1 partition synchronously.
      with o.execute_sql('select * from user_detail WHERE dt=\'20190715\'').open_reader() as reader4:
          print reader4.raw
          for record in reader4:
              print record["userid"],record["job"],record["education"]
      # Use a PyODPS DataFrame to read the level-1 partition.
      pt_df = DataFrame(o.get_table('user_detail').get_partition('dt=20190715'))
      print pt_df.head(10)
    7. Cliquez sur Run.

    8. Consultez les résultats dans le journal Runtime Log.

      4  Internet  master
      1  Internet  bachelor
      3  finance  master
      "userid","job","education","dt","region"
      4,"Internet","master","20190715","beijing"
      1,"Internet","bachelor","20190715","beijing"
      3,"finance","master","20190715","shandong"
      4  Internet  master
      1  Internet  bachelor
      3  finance  master
      Try to fetch data from tunnel
         userid      job education
      0       4  Internet    master
      1       1  Internet  bachelor
      2       3   finance    master