Cara membaca dan menulis data dengan Pandas di Microsoft Fabric

Notebook Microsoft Fabric mendukung interaksi yang mulus dengan data Lakehouse menggunakan Pandas, pustaka Python paling populer untuk eksplorasi dan pemrosesan data. Dalam buku catatan, Anda dapat dengan cepat membaca data dari dan menulis data kembali ke sumber daya Lakehouse Anda dalam berbagai format file. Panduan ini menyediakan sampel kode untuk membantu Anda memulai di buku catatan Anda sendiri.

Prasyarat

  • Selesaikan langkah-langkah dalam Menyiapkan sistem Anda untuk tutorial ilmu data untuk membuat buku catatan baru dan melampirkan Lakehouse ke dalamnya. Untuk artikel ini, ikuti langkah-langkah untuk membuat buku catatan baru daripada mengimpor buku catatan yang sudah ada.

Memuat data Lakehouse ke dalam buku catatan

Catatan

Anda memerlukan beberapa data di Lakehouse Anda untuk mengikuti langkah-langkah di bagian ini. Jika Anda tidak memiliki data apa pun, ikuti langkah-langkah dalam Mengunduh himpunan data dan mengunggah ke lakehouse untuk menambahkan file churn.csv ke Lakehouse Anda.

Setelah melampirkan Lakehouse ke buku catatan Microsoft Fabric, Anda dapat menjelajahi data yang disimpan tanpa meninggalkan halaman dan membacanya ke buku catatan Anda hanya dengan beberapa langkah. Memilih file Lakehouse apa pun menampilkan opsi untuk "Memuat data" ke dalam Spark atau Pandas DataFrame. Anda juga dapat menyalin jalur ABFS lengkap file atau jalur relatif yang ramah.

Cuplikan layar yang memperlihatkan opsi untuk memuat data ke dalam Pandas DataFrame.

Memilih salah satu perintah "Muat data" menghasilkan sel kode yang memuat file ke dalam DataFrame di buku catatan Anda.

Cuplikan layar yang memperlihatkan sel kode yang ditambahkan ke buku catatan.

Mengonversi Spark DataFrame menjadi Pandas DataFrame

Sebagai referensi, perintah ini menunjukkan cara mengonversi Spark DataFrame menjadi Pandas DataFrame:

# Replace "spark_df" with the name of your own Spark DataFrame
pandas_df = spark_df.toPandas() 

Membaca dan menulis berbagai format file

Catatan

Memodifikasi versi paket tertentu berpotensi merusak paket lain yang bergantung padanya. Misalnya, penurunan azure-storage-blob tingkat dapat menyebabkan masalah dengan Pandas dan berbagai pustaka lain yang mengandalkan Pandas, termasuk mssparkutils, , fsspec_wrapperdan notebookutils. Anda dapat melihat daftar paket yang telah diinstal sebelumnya dan versinya untuk setiap runtime di sini.

Sampel kode ini menunjukkan operasi Pandas untuk membaca dan menulis berbagai format file. Sampel ini tidak dimaksudkan untuk dijalankan secara berurutan seperti dalam tutorial, melainkan disalin dan ditempelkan ke notebook Anda sendiri sesuai kebutuhan.

Catatan

Anda harus mengganti jalur file dalam sampel kode ini. Panda mendukung jalur relatif, seperti yang ditunjukkan di sini, dan jalur ABFS penuh. Anda dapat mengambil dan menyalin jalur dari salah satu jenis dari antarmuka menggunakan langkah-langkah sebelumnya.

Membaca data dari file CSV

import pandas as pd

# Read a CSV file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_csv("/LAKEHOUSE_PATH/Files/FILENAME.csv")
display(df)

Menulis data sebagai file CSV

import pandas as pd 

# Write a Pandas DataFrame into a CSV file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_csv("/LAKEHOUSE_PATH/Files/FILENAME.csv") 

Membaca data dari file Parquet

import pandas as pd 
 
# Read a Parquet file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_parquet("/LAKEHOUSE_PATH/Files/FILENAME.parquet") 
display(df)

Menulis data sebagai file Parquet

import pandas as pd 
 
# Write a Pandas DataFrame into a Parquet file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_parquet("/LAKEHOUSE_PATH/Files/FILENAME.parquet") 

Membaca data dari file Excel

import pandas as pd 
 
# Read an Excel file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
# If the file is in a subfolder, add the correct file path after Files/
# For the default lakehouse attached to the notebook, use: df = pd.read_excel("/lakehouse/default/Files/FILENAME.xlsx") 
df = pd.read_excel("/LAKEHOUSE_PATH/Files/FILENAME.xlsx") 
display(df) 

Menulis data sebagai file Excel

import pandas as pd 

# Write a Pandas DataFrame into an Excel file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_excel("/LAKEHOUSE_PATH/Files/FILENAME.xlsx") 

Membaca data dari file JSON

import pandas as pd 
 
# Read a JSON file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_json("/LAKEHOUSE_PATH/Files/FILENAME.json") 
display(df) 

Menulis data sebagai file JSON

import pandas as pd 
 
# Write a Pandas DataFrame into a JSON file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_json("/LAKEHOUSE_PATH/Files/FILENAME.json") 

Bekerja dengan tabel Delta

Tabel Delta adalah format tabel default di Microsoft Fabric dan disimpan di bagian Tabel di Lakehouse Anda. Tidak seperti file, tabel Delta memerlukan proses dua langkah untuk bekerja dengan panda: pertama-tama baca tabel menjadi Spark DataFrame, lalu konversikan ke Pandas DataFrame.

Membuat tabel Delta pengujian

Untuk mengikuti langkah-langkah di bagian ini, Anda memerlukan tabel Delta di Lakehouse Anda. Ikuti langkah-langkah dalam Mengunduh himpunan data dan mengunggah ke lakehouse untuk menambahkan file churn.csv ke Lakehouse Anda, lalu buat tabel pengujian dari file churn.csv dengan menjalankan kode ini di buku catatan Anda:

import pandas as pd
# Create a test Delta table from the churn.csv file

df = pd.read_csv("/lakehouse/default/Files/churn/raw/churn.csv")
spark_df = spark.createDataFrame(df)
spark_df.write.format("delta").mode("overwrite").saveAsTable("churn_table")

Ini membuat tabel Delta bernama churn_table yang dapat Anda gunakan untuk menguji contoh di bawah ini.

Membaca data dari tabel Delta

# Read a Delta table from your Lakehouse into a pandas DataFrame
# This example uses the churn_table created above
spark_df = spark.read.format("delta").load("Tables/churn_table")
pandas_df = spark_df.toPandas()
display(pandas_df)

Anda juga dapat membaca tabel Delta menggunakan sintaks Spark SQL:

# Alternative method using Spark SQL
spark_df = spark.sql("SELECT * FROM churn_table")
pandas_df = spark_df.toPandas()
display(pandas_df)

Menulis dataframe panda ke tabel Delta

# Convert pandas DataFrame to Spark DataFrame, then save as Delta table
# Replace TABLE_NAME with your desired table name
spark_df = spark.createDataFrame(pandas_df)
spark_df.write.format("delta").mode("overwrite").saveAsTable("TABLE_NAME")

Anda juga dapat menyimpan ke jalur tertentu di bagian Tabel:

# Save to a specific path in the Tables section
spark_df = spark.createDataFrame(pandas_df)
spark_df.write.format("delta").mode("overwrite").save("Tables/TABLE_NAME")

Mode tulis untuk tabel Delta

Saat menulis ke tabel Delta, Anda dapat menentukan mode yang berbeda:

# Overwrite the entire table
spark_df.write.format("delta").mode("overwrite").saveAsTable("TABLE_NAME")

# Append new data to existing table
spark_df.write.format("delta").mode("append").saveAsTable("TABLE_NAME")

Catatan

Tabel Delta yang dibuat di bagian Tabel Lakehouse Anda dapat ditemukan tanpa langkah-langkah pendaftaran atau konfigurasi tambahan, dan dapat dikueri menggunakan Spark SQL. Mereka juga muncul di antarmuka penjelajah Lakehouse (Anda mungkin perlu menyegarkan penjelajah Lakehouse untuk melihat perubahan terbaru).