Introduktion till PySpark DataFrames

Grunderna i Big Data med PySpark

Upendra Devisetty

Science Analyst, CyVerse

Vad är PySpark DataFrames?

  • PySpark SQL är ett Spark-bibliotek för strukturerad data som ger mer information om datastruktur och beräkningar

  • En PySpark DataFrame är en oföränderlig, distribuerad datamängd med namngivna kolumner

  • Utformad för att hantera både strukturerad (t.ex. relationsdatabaser) och semi-strukturerad data (t.ex. JSON)

  • DataFrame API finns tillgängligt i Python, R, Scala och Java

  • DataFrames i PySpark stöder både SQL-frågor (SELECT * from table) och uttrycksmetoder (df.select())

Grunderna i Big Data med PySpark

SparkSession – ingångspunkt för DataFrame API

  • SparkContext är huvudingångspunkten för att skapa RDD:er

  • SparkSession ger en enda ingångspunkt för att arbeta med Spark DataFrames

  • SparkSession används för att skapa DataFrames, registrera DataFrames och köra SQL-frågor

  • SparkSession är tillgänglig i PySpark-skalet som spark

Grunderna i Big Data med PySpark

Skapa DataFrames i PySpark

  • Det finns två sätt att skapa DataFrames i PySpark

    • Från befintliga RDD:er med SparkSessions createDataFrame()-metod

    • Från olika datakällor (CSV, JSON, TXT) med SparkSessions read-metod

  • Ett schema styr data och hjälper DataFrames att optimera frågor

  • Schemat innehåller information om kolumnnamn, datatyp, tomma värden osv.

Grunderna i Big Data med PySpark

Skapa en DataFrame från ett 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
Grunderna i Big Data med PySpark

Skapa en DataFrame från CSV/JSON/TXT

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")
  • Sökväg till filen och två valfria parametrar

  • Två valfria parametrar

    • header=True, inferSchema=True
Grunderna i Big Data med PySpark

Nu kör vi en övning!

Grunderna i Big Data med PySpark

Preparing Video For Download...