Первичная обработка данных с помощью ускорителя кода 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.