
![]()
Merhabalar. Bu yazımızda Apache Spark Dataframe içindeki tekil bir değeri basit veri türünde (Int, Double vb.) nasıl elde edeceğimizi bir örnek ile göreceğiz. Benim yaptığım çalışma esnasında kullandığım ortam bilgileri:
İşletim sistemi: Windows 10 64 bit Pro
IDE: Intellij IDEA Community Edition
Spark 2.3.1
Dil: Scala
Kütüphaneler
import org.apache.spark.sql.SparkSession
import org.apache.log4j.{Logger, Level}Log Seviyesini ERROR yapalım ki log bilgileri arasında sonuçları kaçırmayalım
Logger.getLogger("org").setLevel(Level.ERROR)Spark Session ve SparkContext oluşturalım:
val spark = SparkSession.builder()
.appName("DataframeOlusturma")
.master("local[4]")
.config("spark.driver.memory","2g")
.config("spark.executor.memory","4g")
.getOrCreate()
val sc = spark.sparkContext
import spark.implicits._Şimdi isimler ve yaşlardan oluşan basit bir dataframe oluşturalım:
val yaslarDF = Seq(
(8, "Ali"),
(64, "Mehmet"),
(27, "Cemal")
).toDF("yas", "isim")Mehmet’in yaşına erişelim:
val yasMehmet = yaslarDF
.where($"isim" === "Mehmet")
.head().getInt(0)
println(s"Mehmet'in yaşı: ${yasMehmet}")Çıktı aşağıdaki gibi olacaktır:
Mehmet'in yaşı: 64
Yapılan işi özetleyelim: Öncelikle elde edeceğimiz değeri nokta haline getirmeliyiz. Bunu iki aşamada yapıyoruz; önce tek satıra indirgiyoruz .where($"isim" === "Mehmet") daha sonra tek satırda nokta olarak sütunu seçiyoruz .head().getInt(0) . Burada head() kullanmamızın sebebi driver makineye dönen sonuçlardan seçim yapabilmek içindir.
Hoşçakalın…