Introduzione ai DataFrame di PySpark

Fondamenti di Big Data con PySpark

Upendra Devisetty

Science Analyst, CyVerse

Cosa sono i DataFrame di PySpark?

  • PySpark SQL è una libreria Spark per dati strutturati. Fornisce più informazioni sulla struttura dei dati e sul calcolo

  • Un PySpark DataFrame è una collezione distribuita immutabile di dati con colonne denominate

  • Progettato per elaborare dati strutturati (es. database relazionali) e semi-strutturati (es. JSON)

  • L'API DataFrame è disponibile in Python, R, Scala e Java

  • I DataFrame in PySpark supportano sia query SQL (SELECT * from table) sia metodi espressivi (df.select())

Fondamenti di Big Data con PySpark

SparkSession - Punto di ingresso per la DataFrame API

  • SparkContext è il punto di ingresso principale per creare RDD

  • SparkSession offre un unico punto di accesso per interagire con i DataFrame di Spark

  • SparkSession si usa per creare DataFrame, registrarli, eseguire query SQL

  • In PySpark shell, SparkSession è disponibile come spark

Fondamenti di Big Data con PySpark

Creare DataFrame in PySpark

  • Due modi per creare DataFrame in PySpark

    • Da RDD esistenti con il metodo createDataFrame() di SparkSession

    • Da varie sorgenti dati (CSV, JSON, TXT) con il metodo read di SparkSession

  • Lo schema controlla i dati e aiuta i DataFrame a ottimizzare le query

  • Lo schema fornisce info su nome colonna, tipo di dato, valori vuoti, ecc.

Fondamenti di Big Data con PySpark

Creare un DataFrame da un 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
Fondamenti di Big Data con PySpark

Creare un DataFrame leggendo un 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")
  • Percorso del file e due parametri opzionali

  • Due parametri opzionali

    • header=True, inferSchema=True
Fondamenti di Big Data con PySpark

Esercitiamoci!

Fondamenti di Big Data con PySpark

Preparing Video For Download...