pyspark
Che cos'è PySpark?
Apache Spark è scritto in linguaggio di programmazione Scala. PySpark è stato lanciato per supportare la collaborazione fra Apache Spark e Python; si tratta sostanzialmente di un'API Python per Spark. Inoltre, PySpark aiuta a interfacciarsi con Resilient Distributed Dataset (RDD) nel linguaggio di programmazione di Apache Spark e Python. Questo è possibile grazie alla libreria Py4j.
Py4J è una libreria molto diffusa, integrata in PySpark, che consente a Python di interfacciarsi dinamicamente con oggetti JVM. PySpark offre diverse librerie per scrivere programmi efficienti. Inoltre, esistono molte altre librerie esterne compatibili. Eccone alcune.
PySparkSQL
Libreria PySpark per eseguire analisi tipo SQL su grandi quantità di dati strutturati o semi-strutturati. Con PySparkSQL si possono eseguire anche query SQL. Inoltre, può essere collegata ad Apache Hive. Si può applicare anche HiveQL. PySparkSQL è un wrapper che avvolgere il core di PySpark. PySparkSQL ha introdotto il DataFrame, una rappresentazione tabellare di dati strutturati simile alla tabella di un sistema di gestione di database relazionali.
mllib
MLlib è un wrapper che avvolge PySpark ed è la libreria di machine learning di Spark. Questa libreria sfrutta la tecnica di parallelismo dei dati per memorizzare i dati e lavorare con essi. L'API di machine learning messa a disposizione dalla libreria MLlib è molto facile da usare. MLlib supporta molti algoritmi di machine learning per classificazione, regressione, clustering, filtraggio collaborativo, riduzione della dimensionalità e primitive di ottimizzazione sottostanti.
GraphFrames
GraphFrames è una libreria appositamente creata per l'elaborazione di grafici che offre un set di API per l'analisi efficiente di grafici, utilizzando il core di PySpark e PySparkSQL. È ottimizzata per il calcolo distribuito veloce. Vantaggi dell'utilizzo di PySpark: • Python è molto semplice da apprendere e implementare. • Mette a disposizione API semplici e complete. • Python migliora notevolmente la leggibilità del codice, la manutenzione e la familiarità. • Offre diverse opzioni per la visualizzazione dei dati, che risulta invece più difficile con Scala o Java.