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.

Další kroky