Поделиться через


Расширение возможностей сценариев U-SQL c кодом Python в Azure Data Lake Analytics

Важно!

Поддержка Azure Data Lake Analytics прекращена 29 февраля 2024 г. Дополнительные сведения см. в этом объявлении.

Для аналитики данных ваша организация может использовать Azure Synapse Analytics или Microsoft Fabric.

Предварительные требования

Прежде чем начать, убедитесь, что в вашей учетной записи Azure Data Lake Analytics установлены расширения Python:

  • Перейдите к учетной записи Data Lake Analytics в портал Azure
  • В меню слева в разделе НАЧАЛО РАБОТЫ выберите Примеры скриптов.
  • Выберите Установить расширения U-SQL, а затем — ОК.

Обзор

Расширения Python для U-SQL позволяют разработчикам выполнять код Python с массовым параллелизмом. В следующих примерах представлены основные шаги:

  • Используйте инструкцию REFERENCE ASSEMBLY, чтобы включить расширения Python для сценария U-SQL
  • Использование операции REDUCE для разделения входных данных в разделе
  • Расширения Python для U-SQL включают встроенный инструмент редукции (Extension.Python.Reducer), который выполняет код Python в каждой вершине, назначенный инструменту редукции.
  • Сценарий U-SQL содержит встроенный код Python с функцией usqlml_main, которая принимает кадр данных 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();

Интеграция Python c U-SQL

Типы данных

  • Строковые и числовые столбцы из U-SQL преобразовываются без изменений между Pandas и U-SQL.
  • Пустые значения U-SQL преобразовываются в значения Pandas NA и из них.

Схемы

  • Векторы индексов в Pandas не поддерживаются в U-SQL. Все входные кадры данных в функции Python будут всегда содержать 64-разрядный числовой индекс от 0 до соответствующего количества строк минус 1.
  • Наборы данных U-SQL не могут иметь повторяющиеся имена столбцов
  • Наборы данных U-SQL — это имена столбцов, которые не являются строками.

Версии Python

Поддерживается только версия Python 3.5.1 (скомпилированная для Windows).

Стандартные модули Python

Включены все стандартные модули Python.

Дополнительные модули Python

Помимо стандартных библиотек Python, включено несколько часто используемых библиотек Python:

  • pandas
  • numpy
  • numexpr

Сообщения об исключении

В настоящее время исключение в коде Python отображается в качестве общего сбоя вершины. В будущем в сообщениях об ошибках заданий U-SQL будут отображаться сообщения об исключении Python.

Ограничения размера входных и выходных данных

Каждой вершине назначен ограниченный объем памяти. В настоящее время он составляет 6 ГБ на единицу аналитики. Так как входные и выходные кадры данных должны находиться в памяти в коде Python, общий размер входных и выходных данных не может превышать 6 ГБ.

Дальнейшие действия