Dublu program de cinema
Metodele dplyr pe care le-ai văzut în primele două capitole folosesc interfața SQL a Spark. Cu alte cuvinte, ele convertesc codul tău R în cod SQL înainte de a-l transmite către Spark. Aceasta este o soluție excelentă pentru manipulări de bază ale datelor, însă întâmpină probleme atunci când vrei să faci procesări mai complexe. De exemplu, poți calcula media unei coloane, dar nu și mediana. Iată exemplul din exercițiul „Sumarizarea coloanelor" pe care l-ai completat în Capitolul 1.
track_metadata_tbl %>%
summarize(mean_duration = mean(duration)) #OK
track_metadata_tbl %>%
summarize(median_duration = median(duration))
sparklyr dispune și de două interfețe „native" care vor fi discutate în următoarele două capitole. „Native" înseamnă că ele apelează cod Java sau Scala pentru a accesa direct bibliotecile Spark, fără nicio conversie în SQL. sparklyr suportă API-ul (Application Programming Interface) pentru Spark DataFrame, prin funcții cu prefixul sdf_. De asemenea, oferă acces la biblioteca de machine learning a Spark, MLlib, prin funcții de „transformare a caracteristicilor" care încep cu ft_, și funcții de „machine learning" care încep cu ml_.
O diferență importantă între lucrul cu R și lucrul cu Spark este că Spark este mult mai strict în privința tipurilor de variabile decât R. Majoritatea funcțiilor native așteaptă intrări de tip DoubleType și returnează ieșiri de tip DoubleType. DoubleType este echivalentul Spark al tipului de vector numeric din R. sparklyr se ocupă de conversia numeric → DoubleType, însă îți revine ție să convertești datele de tip logical sau integer în numeric și înapoi.
Care dintre afirmațiile de mai jos este adevărată?
- Metodele
dplyrdinsparklyrconvertesc codul în Scala înainte de a-l rula pe Spark. - Conversia codului R în cod SQL limitează numărul de calcule suportate.
- Majoritatea funcțiilor de modelare din Spark MLlib necesită intrări de tip
DoubleTypeși returnează ieșiri de tipDoubleType. - Majoritatea funcțiilor de modelare din Spark MLlib necesită intrări de tip
IntegerTypeși returnează ieșiri de tipBooleanType.
Acest exercițiu face parte din cursul
Introducere în Spark cu sparklyr în R
Exercițiu interactiv practic
Transformă teoria în practică cu unul dintre exercițiile noastre interactive
Începe exercițiul