DataFrame sütunlarını değiştirme
Daha önce, adı andırmayan satırları filtrelemiştin. Şimdi önceki çalışmana dayanarak yöneticin senden iki yeni sütun oluşturmanı istiyor: first_name ve last_name. VOTER_NAME sütununu boşluk karakterlerine göre kelimelere bölmeni istiyor. Son kelimeyi last_name, diğer tüm kelimeleri de first_name olarak ele alacaksın. Bu egzersizde .split(), .size() ve .getItem() dahil bazı yeni fonksiyonlar kullanacaksın. .getItem(index) bir tamsayı alır ve sütundaki ilgili numaralı öğeyi döndürür. .split() ve .size() fonksiyonları pyspark.sql.functions kütüphanesindedir.
Lütfen bu işlemlerin her zaman kullanım durumuna biraz özel olduğunu unutma. Verinin belirli bir formata uyması, çoğu zaman formatın ayrıntılarından daha önemlidir. Veri temizleme görevi nadiren tek bir kişi içindir; tanımlı bir formata uymak, verinin daha sonra daha kolay paylaşılmasını sağlar (ör. Paul isimlerle uğraşmak zorunda kalmaz — Mary veri kümesini çoktan temizlemiştir).
Önceki egzersizinden filtrelenmiş seçmen DataFrame'i voter_df olarak, pyspark.sql.functions kütüphanesi ise F kısaltmasıyla kullanılabilir durumdadır.
Bu egzersiz
PySpark ile Veri Temizleme
kursunun bir parçasıdırEgzersiz talimatları
- Olası adların listesini tutan
splitsadlı yeni bir sütun ekle. getItem()metodunu kullanarakfirst_nameadlı yeni bir sütun oluştur.splitslistesinin son elemanını al velast_nameadlı bir sütun oluştur.splitssütununu düşür ve yenivoter_df'i göster.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Add a new column called splits separated on whitespace
voter_df = voter_df.withColumn(____, F.____(voter_df.VOTER_NAME, '\s+'))
# Create a new column called first_name based on the first item in splits
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(____)
# Get the last entry of the splits list and create a column called last_name
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(F.____('splits') - ____))
# Drop the splits column
voter_df = voter_df.____('splits')
# Show the voter_df DataFrame
voter_df.show()