Dvojitý popcornový program
Metody dplyr, které jsi viděl/a v předchozích dvou kapitolách, využívají SQL rozhraní Sparku. Jinými slovy, převádějí tvůj R kód do SQL kódu, než ho předají Sparku. Pro základní manipulaci s daty je to skvělé řešení, ale naráží na omezení u složitějšího zpracování. Například lze vypočítat průměr sloupce, ale nikoli medián. Tady je příklad z cvičení „Sumarizace sloupců" z 1. kapitoly.
track_metadata_tbl %>%
summarize(mean_duration = mean(duration)) #OK
track_metadata_tbl %>%
summarize(median_duration = median(duration))
sparklyr také nabízí dvě „nativní" rozhraní, která probereme v následujících dvou kapitolách. Nativní znamená, že volají kód v Javě nebo Scale a přistupují přímo ke knihovnám Sparku – bez jakéhokoli převodu do SQL. sparklyr podporuje Spark DataFrame Application Programming Interface (API) s funkcemi s předponou sdf_. Umožňuje také přístup ke knihovně strojového učení Sparku, MLlib, prostřednictvím funkcí pro „transformaci příznaků" s předponou ft_ a funkcí pro „strojové učení" s předponou ml_.
Důležitý rozdíl mezi prací v R a ve Sparku spočívá v tom, že Spark je mnohem přísnější ohledně typů proměnných. Většina nativních funkcí očekává vstup typu DoubleType a vrací výstup téhož typu. DoubleType je Sparkový ekvivalent vektorového typu numeric v R. sparklyr sice zvládne převod numeric na DoubleType sám, ale převod dat typu logical nebo integer na numeric a zpět je už na tobě.
Které z následujících tvrzení je pravdivé?
- Metody
dplyrvsparklyrpřevádějí kód do Scaly, než ho spustí na Sparku. - Převod R kódu do SQL omezuje počet podporovaných výpočtů.
- Většina modelovacích funkcí Spark MLlib vyžaduje vstup typu
DoubleTypea vrací výstup typuDoubleType. - Většina modelovacích funkcí Spark MLlib vyžaduje vstup typu
IntegerTypea vrací výstup typuBooleanType.
Toto cvičení je součástí kurzu
Úvod do Sparku se sparklyr v R
Interaktivní praktické cvičení
Proměňte teorii v praxi s jedním z našich interaktivních cvičení
Začít cvičení