MulaiMulai sekarang secara gratis

Tambahkan sedikit Spark pada data Anda

Pada latihan sebelumnya, Anda melihat cara memindahkan data dari Spark ke pandas. Namun, mungkin Anda ingin melakukan arah sebaliknya, yaitu memasukkan DataFrame pandas ke dalam kluster Spark! Kelas SparkSession juga memiliki metode untuk ini.

Metode .createDataFrame() menerima DataFrame pandas dan mengembalikan Spark DataFrame.

Keluaran metode ini disimpan secara lokal, bukan di katalog SparkSession. Artinya, Anda dapat menggunakan semua metode Spark DataFrame padanya, tetapi Anda tidak dapat mengakses data tersebut dalam konteks lain.

Sebagai contoh, kueri SQL (menggunakan metode .sql()) yang mereferensikan DataFrame Anda akan menghasilkan galat. Untuk mengakses data dengan cara ini, Anda harus menyimpannya sebagai temporary table.

Anda dapat melakukannya dengan metode Spark DataFrame .createTempView(), yang hanya menerima satu argumen berupa nama temporary table yang ingin Anda daftarkan. Metode ini mendaftarkan DataFrame sebagai tabel di katalog, tetapi karena tabel ini bersifat sementara, tabel hanya dapat diakses dari SparkSession spesifik yang digunakan untuk membuat Spark DataFrame tersebut.

Ada juga metode .createOrReplaceTempView(). Metode ini dengan aman membuat temporary table baru jika sebelumnya belum ada, atau memperbarui tabel yang sudah ada jika sudah didefinisikan. Anda akan menggunakan metode ini untuk menghindari masalah akibat tabel duplikat.

Lihat diagram untuk melihat berbagai cara struktur data Spark saling berinteraksi.

Sudah tersedia SparkSession bernama spark di workspace Anda, numpy telah diimpor sebagai np, dan pandas sebagai pd.

Latihan ini adalah bagian dari kursus

Dasar-Dasar PySpark

Lihat Kursus

Petunjuk latihan

  • Kode untuk membuat DataFrame pandas berisi angka acak telah disediakan dan disimpan dalam pd_temp.
  • Buat Spark DataFrame bernama spark_temp dengan memanggil metode Spark .createDataFrame() dan berikan pd_temp sebagai argumennya.
  • Periksa daftar tabel di kluster Spark Anda dan pastikan DataFrame baru tersebut tidak ada. Ingat Anda dapat menggunakan spark.catalog.listTables() untuk melakukannya.
  • Daftarkan DataFrame spark_temp yang baru Anda buat sebagai temporary table menggunakan metode .createOrReplaceTempView(). Temporary table harus diberi nama "temp". Ingat bahwa nama tabel ditetapkan dengan menyertakannya sebagai satu-satunya argumen untuk metode Anda!
  • Periksa kembali daftar tabel.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Create pd_temp
pd_temp = pd.DataFrame(np.random.random(10))

# Create spark_temp from pd_temp
spark_temp = ____

# Examine the tables in the catalog
print(____)

# Add spark_temp to the catalog
spark_temp.____

# Examine the tables in the catalog again
print(____)
Edit dan Jalankan Kode