Fondamenti di Big Data con PySpark
Upendra Devisetty
Science Analyst, CyVerse
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())
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
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.
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
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=TrueFondamenti di Big Data con PySpark