Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Azure Data Lake Analytics a pris sa retraite le 29 février 2024. En savoir plus avec cette annonce.
Pour l’analytique des données, votre organisation peut utiliser Azure Synapse Analytics ou Microsoft Fabric.
Conditions préalables
Avant de commencer, vérifiez que les extensions Python sont installées dans votre compte Azure Data Lake Analytics.
- Accédez à votre compte Data Lake Analytics dans le portail Azure
- Dans le menu de gauche, sous Démarrage sélectionnez Exemples de scripts
- Sélectionnez Installer les extensions U-SQL puis OK
Aperçu
Les extensions Python pour U-SQL permettent aux développeurs d’effectuer une exécution massivement parallèle du code Python. L’exemple suivant illustre les étapes de base :
- Utilisez l’instruction
REFERENCE ASSEMBLYpour activer les extensions Python pour le script U-SQL - Utilisation de l’opération de
REDUCEpour partitionner les données d’entrée sur une clé - Les extensions Python pour U-SQL incluent un réducteur intégré (
Extension.Python.Reducer) qui exécute du code Python sur chaque vertex affecté au réducteur - Le script U-SQL contient le code Python incorporé qui a une fonction appelée
usqlml_mainqui accepte un DataFrame pandas comme entrée et retourne un DataFrame pandas comme sortie.
REFERENCE ASSEMBLY [ExtPython];
DECLARE @myScript = @"
def get_mentions(tweet):
return ';'.join( ( w[1:] for w in tweet.split() if w[0]=='@' ) )
def usqlml_main(df):
del df['time']
del df['author']
df['mentions'] = df.tweet.apply(get_mentions)
del df['tweet']
return df
";
@t =
SELECT * FROM
(VALUES
("D1","T1","A1","@foo Hello World @bar"),
("D2","T2","A2","@baz Hello World @beer")
) AS date, time, author, tweet );
@m =
REDUCE @t ON date
PRODUCE date string, mentions string
USING new Extension.Python.Reducer(pyScript:@myScript);
OUTPUT @m
TO "/tweetmentions.csv"
USING Outputters.Csv();
Intégration de Python à U-SQL
Types de données
- Les colonnes de chaîne et numériques de U-SQL sont converties as-is entre Pandas et U-SQL
- Les valeurs Null de U-SQL sont converties en valeurs
NAPandas et inversement.
Schémas
- Les vecteurs d’index dans Pandas ne sont pas pris en charge dans U-SQL. Toutes les trames de données d’entrée de la fonction Python ont toujours un index numérique 64 bits compris entre 0 et le nombre de lignes moins 1.
- Les jeux de données U-SQL ne peuvent pas avoir de noms de colonnes en double
- Noms de colonnes des jeux de données U-SQL qui ne sont pas des chaînes.
Versions de Python
Seul Python 3.5.1 (compilé pour Windows) est pris en charge.
Modules Python standard
Tous les modules Python standard sont inclus.
Autres modules Python
Outre les bibliothèques Python standard, plusieurs bibliothèques Python couramment utilisées sont incluses :
- Pandas
- numpy
- numexpr
Messages d’exception
Actuellement, une exception dans le code Python apparaît comme une défaillance de vertex générique. À l’avenir, les messages d’erreur de travail U-SQL affichent le message d’exception Python.
Limitations de taille d’entrée et de sortie
Chaque vertex a une quantité limitée de mémoire qui lui est affectée. Actuellement, cette limite est de 6 Go pour une AU. Étant donné que les DataFrames d’entrée et de sortie doivent exister en mémoire dans le code Python, la taille totale de l’entrée et de la sortie ne peut pas dépasser 6 Go.