Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Azure Data Lake Analytics wurde am 29. Februar 2024 eingestellt. Erfahren Sie mehr mit dieser Ankündigung.
Bei Datenanalysen kann Ihre Organisation Azure Synapse Analytics oder Microsoft Fabricverwenden.
Voraussetzungen
Stellen Sie vor Beginn sicher, dass die Python-Erweiterungen in Ihrem Azure Data Lake Analytics-Konto installiert sind.
- Navigieren Sie im Azure-Portal zu Ihrem Data Lake Analytics-Konto
- Wählen Sie im linken Menü unter ERSTE SCHRITTE, Beispielskripts
- Wählen Sie U-SQL-Erweiterungen installieren und dann OK
Überblick
Python-Erweiterungen für U-SQL ermöglichen Entwicklern die massive parallele Ausführung von Python-Code. Das folgende Beispiel veranschaulicht die grundlegenden Schritte:
- Verwenden der
REFERENCE ASSEMBLY-Anweisung zum Aktivieren von Python-Erweiterungen für das U-SQL-Skript - Verwenden des
REDUCE-Vorgangs zum Partitionieren der Eingabedaten auf einem Schlüssel - Die Python-Erweiterungen für U-SQL enthalten einen integrierten Reducer (
Extension.Python.Reducer), der Python-Code auf jedem Vertex ausführt, der dem Verkürzungselement zugewiesen ist. - Das U-SQL-Skript enthält den eingebetteten Python-Code mit einer Funktion namens
usqlml_main, die einen Pandas DataFrame als Eingabe akzeptiert und einen Pandas DataFrame als Ausgabe zurückgibt.
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();
Wie Python sich in U-SQL integriert
Datentypen
- Zeichenfolgen und numerische Spalten aus U-SQL werden unverändert von Pandas nach U-SQL und umgekehrt konvertiert.
- U-SQL-Nullen werden in und aus Pandas
NAWerten konvertiert.
Schemata
- Indexvektoren in Pandas werden in U-SQL nicht unterstützt. Alle Eingabedatenframes in der Python-Funktion verfügen immer über einen numerischen 64-Bit-Index von 0 bis zur Anzahl der Zeilen minus 1.
- U-SQL-Datasets können keine doppelten Spaltennamen haben
- Spaltennamen von U-SQL-Datasets, die keine Zeichenfolgen sind.
Python-Versionen
Nur Python 3.5.1 (kompiliert für Windows) wird unterstützt.
Standard-Python-Module
Alle Standard-Python-Module sind enthalten.
Weitere Python-Module
Neben den Standardmäßigen Python-Bibliotheken sind mehrere häufig verwendete Python-Bibliotheken enthalten:
- Pandas
- numpy
- numexpr
Ausnahmemeldungen
Derzeit wird eine Ausnahme im Python-Code als generischer Vertexfehler angezeigt. In Zukunft werden in den Fehlermeldungen des U-SQL-Auftrags die Python-Ausnahmemeldung angezeigt.
Einschränkungen bei der Eingabe- und Ausgabegröße
Jeder Scheitelpunkt verfügt über einen begrenzten Arbeitsspeicher, der ihm zugewiesen ist. Derzeit beträgt dieser Grenzwert 6 GB für eine AU. Da die Eingabe- und Ausgabedatenframes im Speicher im Python-Code vorhanden sein müssen, darf die Gesamtgröße für die Eingabe und Ausgabe 6 GB nicht überschreiten.