Inizia subitoInizia gratis

Doppio spettacolo di popcorn

I metodi dplyr che hai visto nei due capitoli precedenti usano l'interfaccia SQL di Spark. In altre parole, convertono il tuo codice R in codice SQL prima di passarlo a Spark. È un'ottima soluzione per la manipolazione di base dei dati, ma può creare problemi quando vuoi fare elaborazioni più complesse. Per esempio, puoi calcolare la media di una colonna, ma non la mediana. Ecco l'esempio dall'esercizio "Riepilogo delle colonne" che hai completato nel Capitolo 1.

track_metadata_tbl %>%
  summarize(mean_duration = mean(duration)) #OK
track_metadata_tbl %>%
  summarize(median_duration = median(duration))

sparklyr offre anche due interfacce "native" che verranno discusse nei prossimi due capitoli. Nativo significa che chiamano direttamente codice Java o Scala per accedere alle librerie di Spark, senza alcuna conversione in SQL. sparklyr supporta la DataFrame Application Programming Interface (API) di Spark, con funzioni che hanno il prefisso sdf_. Supporta anche l'accesso alla libreria di machine learning di Spark, MLlib, con funzioni di "feature transformation" che iniziano con ft_, e funzioni di "machine learning" che iniziano con ml_.

Una differenza filosofica importante tra lavorare con R e lavorare con Spark è che Spark è molto più rigoroso sui tipi di variabile rispetto a R. La maggior parte delle funzioni native richiede input DoubleType e restituisce output DoubleType. DoubleType è l'equivalente, in Spark, del tipo di vettore numeric in R. sparklyr gestisce la conversione da numeric a DoubleType, ma spetta all'utente (cioè a te!) convertire i dati logical o integer in numeric e poi di nuovo al tipo originale, se necessario.

Quale di queste affermazioni è vera?

  1. I metodi dplyr di sparklyr convertono il codice in codice Scala prima di eseguirlo su Spark.
  2. Convertire il codice R in codice SQL limita il numero di elaborazioni supportate.
  3. La maggior parte delle funzioni di modellazione di Spark MLlib richiede input DoubleType e restituisce output DoubleType.
  4. La maggior parte delle funzioni di modellazione di Spark MLlib richiede input IntegerType e restituisce output BooleanType.

Questo esercizio fa parte del corso

Introduzione a Spark con sparklyr in R

Visualizza corso

esercizio interattivo pratico

Trasforma la teoria in pratica con uno dei nostri esercizi interattivi

Inizia esercizio