MulaiMulai sekarang secara gratis

Membuat kolom

Dalam bab ini, Anda akan belajar cara menggunakan metode yang didefinisikan oleh kelas DataFrame di Spark untuk melakukan operasi data yang umum.

Mari kita lihat cara melakukan operasi per kolom. Di Spark, Anda dapat melakukannya menggunakan metode .withColumn(), yang menerima dua argumen. Pertama, sebuah string berisi nama kolom baru, dan kedua kolom barunya sendiri.

Kolom baru harus berupa objek dari kelas Column. Membuatnya semudah mengekstrak kolom dari DataFrame Anda menggunakan df.colName.

Memperbarui DataFrame Spark agak berbeda dibanding bekerja di pandas karena DataFrame Spark bersifat immutable. Artinya, DataFrame tidak dapat diubah, sehingga kolom tidak bisa diperbarui di tempat.

Karena itu, semua metode ini mengembalikan DataFrame baru. Untuk menimpa DataFrame asli, Anda harus menugaskan kembali DataFrame hasil metode tersebut seperti berikut:

df = df.withColumn("newCol", df.oldCol + 1)

Kode di atas membuat sebuah DataFrame dengan kolom yang sama seperti df ditambah kolom baru, newCol, di mana setiap entri sama dengan entri yang sesuai dari oldCol, ditambah satu.

Untuk menimpa kolom yang sudah ada, cukup berikan nama kolom tersebut sebagai argumen pertama!

Ingat, sebuah SparkSession bernama spark sudah tersedia di workspace Anda.

Latihan ini adalah bagian dari kursus

Dasar-Dasar PySpark

Lihat Kursus

Petunjuk latihan

  • Gunakan metode spark.table() dengan argumen "flights" untuk membuat sebuah DataFrame yang berisi nilai dari tabel flights di .catalog. Simpan sebagai flights.
  • Tampilkan head dari flights menggunakan flights.show(). Periksa keluarannya: kolom air_time berisi durasi penerbangan dalam menit.
  • Perbarui flights untuk menyertakan kolom baru bernama duration_hrs, yang berisi durasi tiap penerbangan dalam jam (Anda perlu membagi air_time dengan jumlah menit dalam satu jam).

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Create the DataFrame flights
flights = spark.table(____)

# Show the head
____.____()

# Add duration_hrs
flights = flights.withColumn(____)
Edit dan Jalankan Kode