Penguraian lanjutan
Anda telah membentuk himpunan data ini menjadi format yang jauh berbeda dari sebelumnya, tetapi masih ada beberapa hal yang perlu dilakukan. Anda perlu menyiapkan data kolom untuk digunakan pada analisis berikutnya dan menghapus beberapa kolom perantara.
Konteks spark tersedia dan pyspark.sql.functions dialiaskan sebagai F. Tipe data dari pyspark.sql.types sudah diimpor. DataFrame split_df berada pada kondisi terakhir Anda meninggalkannya. Ingat, Anda dapat menggunakan .printSchema() pada sebuah DataFrame di area konsol untuk melihat nama dan tipe kolom.
⚠️ Catatan: Jika Anda melihat AttributeError, segarkan latihan lalu klik Run Solution tanpa mengeklik Jalankan Kode.
Latihan ini merupakan bagian dari kursus
Membersihkan Data dengan PySpark
Instruksi latihan
- Buat fungsi baru bernama
retrieveryang menerima dua argumen, kolom hasil pemisahan (cols) dan jumlah total kolom (colcount). Fungsi ini harus mengembalikan daftar entri yang belum didefinisikan sebagai kolom (yakni, semua elemen setelah item ke-4 dalam daftar). - Definisikan fungsi tersebut sebagai Spark UDF, yang mengembalikan Array berisi string.
- Buat kolom baru
dog_listmenggunakan UDF dan kolom-kolom yang tersedia dalam DataFrame. - Hapus kolom
_c0,colcount, dansplit_cols.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
def retriever(____, ____):
# Return a list of dog data
return ____[4:____]
# Define the method as a UDF
udfRetriever = ____(____, ArrayType(____))
# Create a new column using your UDF
split_df = split_df.withColumn('dog_list', ____(____, ____))
# Remove the original column, split_cols, and the colcount
split_df = split_df.drop('____').____('____').____('____')