Visualizzare i dati in un notebook Spark
Uno dei modi più intuitivi per analizzare i risultati delle query sui dati consiste nel visualizzarli come grafici. Microsoft Fabric include Power BI, una tecnologia di visualizzazione dei dati avanzata che è possibile usare per creare report e dashboard per supportare l'analisi business. Tuttavia, in alcuni scenari di esplorazione e analisi dei dati è possibile visualizzare i dati in un notebook. Questo è lo scenario che verrà esaminato in questa unità.
I notebook in Microsoft Fabric offrono alcune funzionalità di base per i grafici nell'interfaccia utente e, quando tali funzionalità non soddisfano le esigenze specifiche, è possibile usare una delle numerose librerie grafiche di Python per creare e mostrare visualizzazioni dei dati nel notebook.
Uso di grafici di notebook predefiniti
Quando si visualizza un dataframe o si esegue una query SQL in un notebook Spark, i risultati vengono visualizzati sotto la cella di codice. Per impostazione predefinita, viene eseguito il rendering dei risultati come tabella, ma è anche possibile modificare la visualizzazione dei risultati in un grafico e usare le proprietà del grafico per personalizzare il modo in cui il grafico visualizza i dati, come illustrato di seguito:
La funzionalità di creazione di grafici predefinita nei notebook è utile quando si vogliono riepilogare rapidamente i dati visivamente. Quando si vuole avere un maggiore controllo sulla formattazione dei dati è consigliabile usare un pacchetto grafico per creare visualizzazioni personalizzate.
Uso di pacchetti grafici nel codice
Sono disponibili molti pacchetti grafici che è possibile usare per creare visualizzazioni dei dati nel codice. In particolare, Python supporta una vasta selezione di pacchetti; la maggior parte dei quali è basata sulla libreria Matplotlib di base. È possibile eseguire il rendering dell'output di una libreria grafica in un notebook, semplificando la combinazione di codice per inserire e modificare i dati con visualizzazioni dei dati inline e celle Markdown per fornire commenti.
È ad esempio possibile usare il codice PySpark seguente per aggregare i dati dei prodotti ipotetici esaminati in precedenza in questo modulo e usare Matplotlib per creare un grafico dai dati aggregati.
from matplotlib import pyplot as plt
# Get the data as a Pandas dataframe
data = spark.sql("SELECT Category, COUNT(ProductID) AS ProductCount \
FROM products \
GROUP BY Category \
ORDER BY Category").toPandas()
# Clear the plot area
plt.clf()
# Create a Figure
fig = plt.figure(figsize=(12,8))
# Create a bar plot of product counts by category
plt.bar(x=data['Category'], height=data['ProductCount'], color='orange')
# Customize the chart
plt.title('Product Counts by Category')
plt.xlabel('Category')
plt.ylabel('Products')
plt.grid(color='#95a5a6', linestyle='--', linewidth=2, axis='y', alpha=0.7)
plt.xticks(rotation=70)
# Show the plot area
plt.show()
La libreria Matplotlib richiede che i dati si trovano in un dataframe Pandas anziché in un dataframe Spark, quindi viene usato il metodo toPandas per convertirli. Il codice crea quindi una figura con una dimensione specificata e traccia un grafico a barre con una configurazione di proprietà personalizzata prima di visualizzare il tracciato risultante.
Il grafico prodotto dal codice sarà simile all'immagine seguente:
È possibile usare la libreria Matplotlib per creare molti tipi di grafico. Se preferito, è in alternativa possibile usare altre librerie, ad esempio Seaborn, per creare grafici altamente personalizzati.