Бөлісу құралы:


Первичная обработка данных с помощью ускорителя кода PROSE

Область применения: SQL Server 2019 (15.x)

Внимание

Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, и программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений SQL Server до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.

Ускоритель кода PROSE создает код Python для задач первичной обработки данных в доступном для чтения формате. Этот код можно без проблем добавлять к написанному вручную коду при работе с записной книжкой в Azure Data Studio.

В этой статье приводятся общие сведения об использовании этого ускорителя кода.

Примечание.

Program Synthesis using Examples (или PROSE) — это технология Майкрософт, которая обеспечивает создание удобочитаемого кода на основе искусственного интеллекта. Для этого анализируется намерение пользователя, создается несколько потенциальных программ, после чего с применением алгоритмов ранжирования выбирается лучшая программа. Чтобы узнать больше о технологии PROSE, посетите эту страницу.

Этот ускоритель кода устанавливается в составе Azure Data Studio. Его можно импортировать в записную книжку так же, как и любой другой пакет Python. В соответствии с соглашением импорт осуществляется в формате CX.

import prose.codeaccelerator as cx

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

  • Считывание файлов данных в кадр данных Pandas или Pyspark.
  • Исправление типов данных в кадре данных.
  • Поиск регулярных выражений, представляющих закономерности в списке строк.

Общие сведения о методах этого ускорителя кода см. в документации.

Чтение данных из файла в кадр данных

При считывании файлов в кадр данных осуществляется просмотр содержимого файла и определение параметров, которые будут передаваться в библиотеку загрузки данных.

В зависимости от сложности файла определение правильных параметров может потребовать нескольких итераций.

Ускоритель кода PROSE позволяет решить эту проблему за счет анализа структуры файла данных и автоматического создания кода для загрузки файла. Как правило, созданный код корректно анализирует данные. В некоторых случаях может потребоваться настройка кода в соответствии с конкретными потребностями.

Рассмотрим следующий пример:

import prose.codeaccelerator as cx

# Call the ReadCsvBuilder builder to analyze the file content and generate code to load it
builder = cx.ReadCsvBuilder(r'C:/911.txt')

#Set target to pyspark if generating code to use pyspark library
#builder.Target = "pyspark"

#Get the code generated to fix the data types
builder.learn().code()

Предыдущий блок кода выводит следующий код Python для считывания файла с разделителями. Обратите внимание, что PROSE автоматически определяет количество строк, которые требуется пропустить, а также заголовки, символы кавычек, разделители и т. д.

import pandas as pd

def read_file(file):
   names = ["lat",
            "lng",
            "desc",
            "zip",
            "title"]

   df = pd.read_csv(file,
       skiprows = 11,
       header = None,
       names = names,
       quotechar = "\"",
       delimiter = "|",
       index_col = False,
       dtype = str,
       na_values = [],
       keep_default_na = False,
       skipinitialspace = True)
   return df

Ускоритель может создать код для загрузки файлов с разделителями, файлов JSON и файлов фиксированной ширины в кадр данных. Для считывания файлов фиксированной ширины ReadFwfBuilder может использовать удобочитаемый файл схемы, анализ которого позволяет определить позиции столбцов. Дополнительные сведения см. в документации.

Исправление типов данных в кадре данных

В кадре данных Pandas или Pyspark часто могут присутствовать неправильные типы данных. Неправильный тип данных происходит из-за нескольких несоответствующих значений в столбце. В результате этого целые числа считываются с типом Float или String, а даты — в строковом представлении. Затраты времени на исправление типов данных вручную пропорциональны количеству столбцов.

В таких ситуациях можно использовать DetectTypesBuilder. Он анализирует данные и создает код для исправления типов данных. Этот код выступает в качестве отправной точки. При необходимости вы можете проверить его и внести изменения, либо использовать в исходном виде.

import prose.codeaccelerator as cx

builder = cx.DetectTypesBuilder(df)

#Set target to pyspark if working with pyspark
#builder.Target = "pyspark"

#Get the code generated to fix the data types
builder.learn().code()

Дополнительные сведения см. в документации.

Определение шаблонов в строках

Строка Имя. Дата рождения
0 Bertram du Plessis 1995
1 Naiara Moravcikova Неизвестно
2 Jihoo Spel 2014
3 Viachaslau Gordan Hilario 22-апр-67
4 Maya de Villiers 19-мар-60

В зависимости от объема и степени разнообразия данных написание регулярных выражений для различных закономерностей в столбце может потребовать много времени. FindPatternsBuilder предоставляет эффективный способ для решения описываемой проблемы за счет создания регулярных выражений для списка строк.

import prose.codeaccelerator as cx

builder = cx.FindPatternsBuilder(df['BirthDate'])

#Set target to pyspark if working with pyspark
#builder.Target = "pyspark"

builder.learn().regexes

Ниже показаны регулярные выражения, созданные FindPatternsBuilder для приведенных выше данных.

^[0-9]{2}-[A-Z][a-z]+-[0-9]{2}$
^[0-9]{2}[\s][A-Z][a-z]+[\s][0-9]{4}$
^[0-9]{4}$
^Unknown$

Помимо создания регулярных выражений, FindPatternsBuilder также может создавать код для кластеризации значений на основе созданных регулярных выражений. Кроме того, может быть сделано утверждение о том, что все значения в столбце соответствуют созданным регулярным выражениям. Дополнительные сведения и сведения о других полезных сценариях см. в пакете SDK для акселератора кода Microsoft PROSE.