Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Azure Data Lake Analytics is op 29 februari 2024 buiten gebruik gesteld. Meer informatie vindt u in deze aankondiging.
Voor gegevensanalyse kan uw organisatie Azure Synapse Analytics of Microsoft Fabric gebruiken.
Vereiste voorwaarden
Controleer voordat u begint of de Python-extensies zijn geïnstalleerd in uw Azure Data Lake Analytics-account.
- Navigeer naar uw Data Lake Analytics-account in Azure Portal
- Selecteer Voorbeeldscripts in het linkermenu onder AAN DE SLAG
- Selecteer U-SQL-extensies installeren en vervolgens OK
Overzicht
Met Python-extensies voor U-SQL kunnen ontwikkelaars massaal parallelle uitvoering van Python-code uitvoeren. In het volgende voorbeeld ziet u de basisstappen:
- Gebruik de
REFERENCE ASSEMBLYinstructie om Python-extensies in te schakelen voor het U-SQL-script -
REDUCEDe bewerking gebruiken om de invoergegevens op een sleutel te partitioneren - De Python-extensies voor U-SQL bevatten een ingebouwde reducer (
Extension.Python.Reducer) die Python-code uitvoert op elk hoekpunt dat is toegewezen aan de reducer - Het U-SQL-script bevat de ingesloten Python-code met een functie
usqlml_maindie een pandas DataFrame accepteert als invoer en een Pandas DataFrame retourneert als uitvoer.
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();
Hoe Python kan worden geïntegreerd met U-SQL
Gegevenssoorten
- Tekenreeks- en numerieke kolommen van U-SQL worden geconverteerd as-is tussen Pandas en U-SQL
- U-SQL Null-waarden worden geconverteerd in en uit Pandas-waarden
NA
schemas
- Indexvectoren in Pandas worden niet ondersteund in U-SQL. Alle invoergegevensframes in de Python-functie hebben altijd een 64-bits numerieke index van 0 tot en met het aantal rijen min 1.
- U-SQL-gegevenssets kunnen geen dubbele kolomnamen hebben
- Kolomnamen van U-SQL-gegevenssets die geen tekenreeksen zijn.
Python-versies
Alleen Python 3.5.1 (gecompileerd voor Windows) wordt ondersteund.
Standaard Python-modules
Alle standaard Python-modules zijn opgenomen.
Meer Python-modules
Naast de standaard Python-bibliotheken zijn verschillende veelgebruikte Python-bibliotheken opgenomen:
- Pandas
- numpy
- numexpr
Uitzonderingsberichten
Momenteel wordt een uitzondering in Python-code weergegeven als algemene hoekpuntfout. In de toekomst worden in de foutberichten van de U-SQL-taak de Python-uitzonderingsberichten weergegeven.
Beperkingen voor invoer- en uitvoergrootte
Aan elk hoekpunt is een beperkte hoeveelheid geheugen toegewezen. Op dit moment is die limiet 6 GB voor een AU. Omdat de invoer- en uitvoergegevensframes in het geheugen in de Python-code moeten bestaan, mag de totale grootte voor de invoer en uitvoer niet groter zijn dan 6 GB.