Veri Bilimi Okulu

Apache Spark DataFrame İçinden Değerlere Ulaşmak
Apache Spark DataFrame İçinden Değerlere Ulaşmak
spark_dataframe_degere_ulasma (1)

Loading

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…

 

0

Bir yanıt yazın

Password Requirements:

  • At least 8 characters
  • At least 1 lowercase letter
  • At least 1 uppercase letter
  • At least 1 numerical number
  • At least 1 special character