Rozšíření skriptů U-SQL pomocí kódu Pythonu v Azure Data Lake Analytics
Důležité
Azure Data Lake Analytics vyřazena 29. února 2024. Další informace najdete v tomto oznámení.
K analýze dat může vaše organizace použít Azure Synapse Analytics nebo Microsoft Fabric.
Požadavky
Než začnete, ujistěte se, že jsou ve vašem účtu Azure Data Lake Analytics nainstalovaná rozšíření Pythonu.
- Přejděte na svůj účet Data Lake Analytics v Azure Portal
- V nabídce vlevo v části ZAČÍNÁME vyberte Ukázkové skripty.
- Vyberte Nainstalovat rozšíření U-SQL a pak OK.
Přehled
Rozšíření Pythonu pro U-SQL umožňují vývojářům provádět masivní paralelní spouštění kódu Pythonu. Následující příklad znázorňuje základní kroky:
- Použití příkazu
REFERENCE ASSEMBLY
k povolení rozšíření Pythonu pro skript U-SQL -
REDUCE
Použití operace k rozdělení vstupních dat na klíč - Rozšíření Pythonu pro U-SQL obsahují integrovaný redukční modul (
Extension.Python.Reducer
), který spouští kód Pythonu na každém vrcholu přiřazeného k redukčnímu modulu. - Skript U-SQL obsahuje vložený kód Pythonu, který má funkci s názvem
usqlml_main
, která jako vstup přijímá datový rámec pandas a jako výstup vrací datový rámec pandas.
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();
Integrace Pythonu s U-SQL
Datové typy
- Řetězcové a číselné sloupce z U-SQL se mezi Pandas a U-SQL převedou tak, jak jsou.
- Hodnoty Null U-SQL se převedou na hodnoty Pandas a z hodnot Pandas
NA
.
Schémata
- Vektory indexu v Knihovně Pandas nejsou podporovány v U-SQL. Všechny vstupní datové rámce ve funkci Pythonu mají vždy 64bitový číselný index od 0 do počtu řádků minus 1.
- Datové sady U-SQL nemůžou mít duplicitní názvy sloupců.
- Názvy sloupců datových sad U-SQL, které nejsou řetězce.
Verze Pythonu
Podporuje se pouze Python 3.5.1 (zkompilovaný pro Windows).
Standardní moduly Pythonu
Součástí jsou všechny standardní moduly Pythonu.
Další moduly Pythonu
Kromě standardních knihoven Pythonu je k dispozici několik běžně používaných knihoven Pythonu:
- pandas
- numpy
- numexpr
Zprávy o výjimce
V současné době se výjimka v kódu Pythonu zobrazuje jako selhání obecného vrcholu. V budoucnu budou chybové zprávy úlohy U-SQL zobrazovat zprávu o výjimce Pythonu.
Omezení velikosti vstupu a výstupu
Každému vrcholu je přiřazeno omezené množství paměti. V současné době je tento limit pro AU 6 GB. Vzhledem k tomu, že vstupní a výstupní datové rámce musí existovat v paměti v kódu Pythonu, celková velikost vstupu a výstupu nesmí překročit 6 GB.