Seçme
SQL'in SELECT ifadesinin Spark karşılığı .select() metodudur. Bu metod, seçmek istediğin her sütun için birer tane olmak üzere birden çok argüman alır. Bu argümanlar, sütun adını birer string olarak (her sütun için bir tane) ya da bir sütun nesnesi olarak (df.colName söz dizimini kullanarak) verilebilir. Bir sütun nesnesi verdiğinde, tıpkı .withColumn() içinde olduğu gibi, sütun üzerindeki veriyi değiştirmek için toplama veya çıkarma gibi işlemler uygulayabilirsin.
.select() ile .withColumn() arasındaki fark, .select() yalnızca belirttiğin sütunları döndürürken, .withColumn() tanımladığın sütuna ek olarak DataFrame'in tüm sütunlarını döndürmesidir. Genellikle, veri düzenlerken yanında gereksiz veri taşımamak için işlemin başında ihtiyacın olmayan sütunları atmak iyi bir fikirdir. Bu durumda .withColumn() değil, .select() kullanırsın.
sp ark adında bir SparkSession'ın ve flights adlı bir Spark DataFrame'inin çalışma alanında zaten yüklü olduğunu unutma.
Bu egzersiz
PySpark Temelleri
kursunun bir parçasıdırEgzersiz talimatları
- Sütun adlarını string olarak vererek
flightsiçinden"tailnum","origin"ve"dest"sütunlarını seç. Bunuselected1olarak kaydet. df.colNamesöz dizimini kullanarak"origin","dest"ve"carrier"sütunlarını seç ve ardından sonuç üzerinde senin için tanımlanmış iki filtreyi (filterAvefilterB) birlikte kullanarak yalnızca SEA'den PDX'e giden uçuşları tutacak şekilde filtrele. Bunuselected2olarak kaydet.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Select the first set of columns
selected1 = flights.select("____", "____", "____")
# Select the second set of columns
temp = flights.select(____.____, ____.____, ____.____)
# Define first filter
filterA = flights.origin == "SEA"
# Define second filter
filterB = flights.dest == "PDX"
# Filter the data, first by filterA then by filterB
selected2 = temp.filter(____).filter(____)