Anasayfa / Büyük Veri / Apache Spark DataFrame İçinden Değerlere Ulaşmak

Apache Spark DataFrame İçinden Değerlere Ulaşmak

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…

 

Hakkında Erkan ŞİRİN

2014'ten beri hem akademik alanda hem de sektörde pratik anlamda büyük veri ve veri bilimi ile ilgili çalışmalar yürütmektedir. Halihazırda İmpektra Bilişim A.Ş.'de büyük veri yöneticisi olarak çalışmakta olup aynı zamanda Gazi Üniversitesi Yönetim Bilişim Sistemleri doktora öğrencisidir. Büyük veri ve veri bilimi ile ilgili birçok kurum ve şirkete eğitimler vermekte ve projeler icra etmektedir. Çalışma alanları: büyük veri platformlarının kurulum ve yönetimi, büyük veri üzerinde makine öğrenmesi, olağan dışılık tespiti, sahtecilik tespiti, veri hazırlama sürecidir.

GÖZ ATMAK İSTEYEBİLİRSİNİZ

IntelliJ IDEA ile Apache Spark Projesini Uzak YARN Cluster Üzerinde Çalıştırmak-2/2

Merhaba. Yazı serimizin ikincisine devam ediyoruz. Bir önceki ilk yazımızda konuya giriş yapmıştık. Hatırlayalım, amacımız …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir