Einführung in PySpark DataFrames

Grundlagen von Big Data mit PySpark

Upendra Devisetty

Science Analyst, CyVerse

Was sind PySpark DataFrames?

  • PySpark SQL ist eine Spark-Bibliothek für strukturierte Daten. Sie liefert mehr Infos zur Daten- und Rechenstruktur

  • Ein PySpark DataFrame ist eine unveränderliche, verteilte Datensammlung mit benannten Spalten

  • Für strukturierte (z. B. relationale DB) und semi-strukturierte Daten (z. B. JSON) entwickelt

  • DataFrame-API gibt es in Python, R, Scala und Java

  • PySpark DataFrames unterstützen SQL-Abfragen (SELECT * from table) und Methoden (df.select())

Grundlagen von Big Data mit PySpark

SparkSession – Einstiegspunkt für die DataFrame-API

  • SparkContext ist der Haupteinstiegspunkt zum Erstellen von RDDs

  • SparkSession ist der zentrale Einstieg, um mit Spark DataFrames zu arbeiten

  • SparkSession erstellt DataFrames, registriert sie und führt SQL-Abfragen aus

  • In der PySpark-Shell ist SparkSession als spark verfügbar

Grundlagen von Big Data mit PySpark

DataFrames in PySpark erstellen

  • Zwei Wege, DataFrames in PySpark zu erstellen

    • Aus vorhandenen RDDs mit SparkSessions createDataFrame()

    • Aus Datenquellen (CSV, JSON, TXT) mit SparkSessions read

  • Das Schema steuert die Daten und hilft beim Optimieren von Abfragen

  • Es enthält Spaltennamen, Datentypen, leere Werte usw.

Grundlagen von Big Data mit PySpark

DataFrame aus RDD erstellen

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
Grundlagen von Big Data mit PySpark

DataFrame aus CSV/JSON/TXT lesen

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")
  • Pfad zur Datei und zwei optionale Parameter

  • Zwei optionale Parameter

    • header=True, inferSchema=True
Grundlagen von Big Data mit PySpark

Lass uns üben!

Grundlagen von Big Data mit PySpark

Preparing Video For Download...