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.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk