PySpark è l’API Python per Spark, un motore di analisi utilizzato per l’elaborazione dei dati su larga scala. Spark è diventato lo strumento predominante nell’ecosistema della scienza dei dati, soprattutto quando abbiamo a che fare con set di dati di grandi dimensioni difficili da gestire con strumenti come Panda e SQL.
In questo articolo impareremo PySpark ma da una prospettiva diversa rispetto alla maggior parte degli altri tutorial. Invece di esaminare le funzioni PySpark utilizzate di frequente e spiegare come utilizzarle, risolveremo alcune impegnative attività di pulizia ed elaborazione dei dati. Questo modo di apprendere non solo ci aiuta ad apprendere le funzioni PySpark, ma anche a sapere quando usarle.
Prima di iniziare con gli esempi, lascia che ti spieghi come ottenere il set di dati utilizzato negli esempi. È un set di dati di esempio che ho preparato con dati fittizi. Puoi scaricare dal mio set di dati repository: si chiama “sample_sales_pyspark.csv”.
Iniziamo con la creazione di un DataFrame da questo set di dati.
from pyspark.sql import SparkSession
from pyspark.sql import Window, functions as Fspark = SparkSession.builder.getOrCreate()
data = spark.read.csv("sample_sales_pyspark.csv", header=True)
data.show(5)
# output
+----------+------------+----------+---------+---------+-----+
|store_code|product_code|sales_date|sales_qty|sales_rev|price|
+----------+------------+----------+---------+---------+-----+
| B1| 89912|2021-05-01| 14| 17654| 1261|
| B1| 89912|2021-05-02| 19| 24282| 1278|
| B1| 89912|2021-05-03| 15| 19305| 1287|
| B1| 89912|2021-05-04| 21| 28287| 1347|
| B1| 89912|2021-05-05| 4| 5404| 1351|
+----------+------------+----------+---------+---------+-----+
PySpark consente di utilizzare il codice SQL tramite il suo pyspark.sql
modulo. È estremamente pratico e intuitivo utilizzare il codice SQL per alcune attività di preelaborazione dei dati come la modifica dei nomi delle colonne e dei tipi di dati.
IL selectExpr
rende molto semplice eseguire queste operazioni soprattutto se si ha una certa esperienza con SQL.
Fonte: towardsdatascience.com