Introductie tot PySpark DataFrames

Big Data Fundamentals met PySpark

Upendra Devisetty

Science Analyst, CyVerse

Wat zijn PySpark DataFrames?

  • PySpark SQL is een Spark-bibliotheek voor gestructureerde data. Het geeft meer info over de datastructuur en berekening

  • Een PySpark DataFrame is een onveranderlijke, gedistribueerde dataset met benoemde kolommen

  • Ontworpen voor gestructureerde (bijv. relationele db) en semi-gestructureerde data (bijv. JSON)

  • DataFrame-API is beschikbaar in Python, R, Scala en Java

  • PySpark DataFrames ondersteunen zowel SQL-queries (SELECT * from table) als expressiemethoden (df.select())

Big Data Fundamentals met PySpark

SparkSession - ingangspunt voor de DataFrame-API

  • SparkContext is het hoofdingangspunt om RDD's te maken

  • SparkSession biedt één ingangspunt om met Spark DataFrames te werken

  • SparkSession wordt gebruikt om DataFrames te maken, te registreren en SQL-queries uit te voeren

  • In de PySpark-shell is SparkSession beschikbaar als spark

Big Data Fundamentals met PySpark

DataFrames maken in PySpark

  • Twee manieren om DataFrames in PySpark te maken

    • Van bestaande RDD's met SparkSession's createDataFrame()

    • Uit bronnen (CSV, JSON, TXT) met SparkSession's read

  • Schema stuurt de data en helpt queries optimaliseren

  • Schema geeft kolomnaam, datatype, lege waarden, enz.

Big Data Fundamentals met PySpark

Een DataFrame maken uit een RDD

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
Big Data Fundamentals met PySpark

Een DataFrame maken door CSV/JSON/TXT te lezen

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")
  • Pad naar het bestand en twee optionele parameters

  • Twee optionele parameters

    • header=True, inferSchema=True
Big Data Fundamentals met PySpark

Laten we oefenen!

Big Data Fundamentals met PySpark

Preparing Video For Download...