Manipulasi Data menggunakan Akselerator Kode PROSE

Berlaku untuk: SQL Server 2019 (15.x)

Penting

Add-on Kluster Big Data Microsoft SQL Server 2019 akan dihentikan. Dukungan untuk SQL Server 2019 Kluster Big Data akan berakhir pada 28 Februari 2025. Semua pengguna SQL Server 2019 yang ada dengan Jaminan Perangkat Lunak akan didukung sepenuhnya pada platform dan perangkat lunak akan terus dipertahankan melalui pembaruan kumulatif SQL Server hingga saat itu. Untuk informasi selengkapnya, lihat posting blog pengumuman dan Opsi big data di platform Microsoft SQL Server.

Akselerator Kode PROSE menghasilkan kode Python yang dapat dibaca untuk tugas perselisihan data Anda. Anda dapat mencampur kode yang dihasilkan dengan kode tulisan tangan saat bekerja di notebook dalam Azure Data Studio.

Artikel ini memberikan gambaran umum tentang bagaimana Anda dapat menggunakan Akselerator Kode.

Catatan

Sintesis Program menggunakan Contoh, alias PROSE, adalah teknologi Microsoft yang menghasilkan kode yang dapat dibaca manusia menggunakan AI. Hal ini dilakukan dengan menganalisis niat pengguna serta data, menghasilkan beberapa program kandidat, dan memilih program terbaik menggunakan algoritma peringkat. Untuk mengetahui lebih banyak tentang teknologi PROSE, kunjungi beranda PROSE.

Code Accelerator telah diinstal sebelumnya dengan Azure Data Studio. Anda dapat mengimpornya seperti paket Python lainnya di buku catatan. Berdasarkan konvensi, kami mengimpornya sebagai cx untuk singkatnya.

import prose.codeaccelerator as cx

Dalam rilis saat ini, Code Accelerator dapat dengan cerdas menghasilkan kode Python untuk tugas-tugas berikut:

  • Membaca file data ke dataframe Pandas atau Pyspark.
  • Memperbaiki jenis data dalam dataframe.
  • Menemukan ekspresi reguler yang mewakili pola dalam daftar string.

Untuk mendapatkan gambaran umum metode Code Accelerator, lihat dokumentasi.

Membaca data dari file ke dataframe

Membaca file ke dataframe melibatkan melihat konten file dan menentukan parameter yang benar untuk diteruskan ke pustaka pemuatan data.

Bergantung pada kompleksitas file, mengidentifikasi parameter yang benar mungkin memerlukan beberapa iterasi.

PROSE Code Accelerator memecahkan masalah ini dengan menganalisis struktur file data dan secara otomatis menghasilkan kode untuk memuat file. Biasanya, kode yang dihasilkan mengurai data dengan benar. Dalam beberapa kasus, Anda mungkin perlu mengubah kode untuk memenuhi kebutuhan Anda.

Pertimbangkan contoh berikut:

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()

Blok kode sebelumnya mencetak kode python berikut untuk membaca file yang dibatasi. Perhatikan bagaimana PROSE secara otomatis mencari tahu jumlah baris yang akan dilewati, header, kutipan, pembatas, dll.

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

Code Accelerator dapat menghasilkan kode untuk memuat file yang dibatasi, JSON, dan lebar tetap ke dataframe. Untuk membaca file lebar tetap, ReadFwfBuilder secara opsional mengambil file skema yang dapat dibaca manusia yang dapat diurai untuk mendapatkan posisi kolom. Untuk mempelajari lebih lanjut, lihat dokumentasi.

Memperbaiki jenis data dalam dataframe

Umum untuk memiliki dataframe panda atau pyspark dengan jenis data yang salah. Jenis data yang salah terjadi karena beberapa nilai yang tidak sesuai dalam kolom. Akibatnya, Bilangan bulat dibaca sebagai Float atau String, dan Tanggal dibaca sebagai String. Upaya yang diperlukan untuk memperbaiki jenis data secara manual sebanding dengan jumlah kolom.

Anda dapat menggunakan DetectTypesBuilder dalam situasi ini. Ini menganalisis data dan menghasilkan kode untuk memperbaiki jenis data. Kode berfungsi sebagai titik awal. Anda dapat meninjau, menggunakan, atau memodifikasinya sesuai kebutuhan.

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()

Untuk mempelajari lebih lanjut, lihat dokumentasi.

Mengidentifikasi pola dalam String

Baris Nama Tanggal Lahir
0 Bertram du Plessis 1995
1 Naiara Moravcikova Tidak dikenal
2 Jihoo Spel 2014
3 Viachaslau Gordan Hilario 22-Apr-67
4 Maya de Villiers 19-Mar-60

Bergantung pada volume dan keragaman dalam data, menulis ekspresi reguler untuk pola yang berbeda dalam kolom dapat menjadi tugas yang sangat memakan waktu. FindPatternsBuilder adalah alat akselerasi kode yang kuat yang memecahkan masalah di atas dengan menghasilkan ekspresi reguler untuk daftar String.

import prose.codeaccelerator as cx

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

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

builder.learn().regexes

Berikut adalah ekspresi reguler yang dihasilkan oleh FindPatternsBuilder untuk data di atas.

^[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$

Selain menghasilkan Ekspresi Reguler, FindPatternsBuilder juga dapat menghasilkan kode untuk pengklusteran nilai berdasarkan regex yang dihasilkan. Ini juga dapat menegaskan bahwa semua nilai dalam kolom sesuai dengan ekspresi reguler yang dihasilkan. Untuk mempelajari selengkapnya dan melihat skenario berguna lainnya, lihat Microsoft PROSE Code Accelerator SDK.