PySpark DataFrame’lere Giriş

PySpark ile Big Data Temelleri

Upendra Devisetty

Science Analyst, CyVerse

PySpark DataFrame’ler nedir?

  • PySpark SQL, yapılandırılmış veri için bir Spark kütüphanesidir. Veri ve hesaplama yapısı hakkında daha fazla bilgi sağlar

  • PySpark DataFrame, adlandırılmış sütunlara sahip değiştirilemez, dağıtık bir veri koleksiyonudur

  • Hem yapılandırılmış (örn. ilişkisel veritabanı) hem de yarı yapılandırılmış veriyi (örn. JSON) işlemek için tasarlanmıştır

  • DataFrame API; Python, R, Scala ve Java’da mevcuttur

  • PySpark’ta DataFrame’ler hem SQL sorgularını (SELECT * from table) hem de ifade yöntemlerini (df.select()) destekler

PySpark ile Big Data Temelleri

SparkSession - DataFrame API için giriş noktası

  • SparkContext, RDD oluşturmada ana giriş noktasıdır

  • SparkSession, Spark DataFrame’lerle etkileşim için tek giriş noktasıdır

  • SparkSession; DataFrame oluşturma, DataFrame kaydetme ve SQL sorguları çalıştırmada kullanılır

  • PySpark kabuğunda SparkSession, spark olarak bulunur

PySpark ile Big Data Temelleri

PySpark’ta DataFrame oluşturma

  • PySpark’ta DataFrame oluşturmanın iki yöntemi

    • Var olan RDD’lerden, SparkSession’ın createDataFrame() yöntemiyle

    • Çeşitli veri kaynaklarından (CSV, JSON, TXT), SparkSession’ın read yöntemiyle

  • Şema, veriyi tanımlar ve sorgu iyileştirmesine yardımcı olur

  • Şema; sütun adı, veri türü, boş değerler vb. bilgileri sağlar

PySpark ile Big Data Temelleri

RDD’den DataFrame oluşturma

iphones_RDD = sc.parallelize([
    ("XS", 2018, 5.65, 2.79, 6.24),
    ("XR", 2018, 5.94, 2.98, 6.84),
    ("X10", 2017, 5.65, 2.79, 6.13),
    ("8Plus", 2017, 6.23, 3.07, 7.12)
])
names = ['Model', 'Year', 'Height', 'Width', 'Weight']
iphones_df = spark.createDataFrame(iphones_RDD, schema=names)

type(iphones_df)
pyspark.sql.dataframe.DataFrame
PySpark ile Big Data Temelleri

CSV/JSON/TXT okuyarak DataFrame oluşturma

df_csv = spark.read.csv("people.csv", header=True, inferSchema=True)
df_json = spark.read.json("people.json")
df_txt = spark.read.txt("people.txt")
  • Dosya yolu ve iki isteğe bağlı parametre

  • İki isteğe bağlı parametre

    • header=True, inferSchema=True
PySpark ile Big Data Temelleri

Hadi pratik yapalım

PySpark ile Big Data Temelleri

Preparing Video For Download...