Kopiowanie danych do Sparka
Zanim zaczniesz pracować ze Sparkiem, musisz najpierw dostarczyć do niego dane. sparklyr udostępnia funkcje takie jak spark_read_csv(), które wczytują plik CSV bezpośrednio do Sparka. Ogólnie przydatna jest też możliwość kopiowania danych z R do Sparka – służy do tego funkcja copy_to() z pakietu dplyr. Uwaga: kopiowanie danych jest z natury powolnym procesem. Właśnie dlatego wiele strategii optymalizacji wydajności przy dużych zbiorach danych sprowadza się do tego, by unikać przenoszenia danych z miejsca na miejsce.
copy_to() przyjmuje dwa argumenty: połączenie ze Sparkiem (dest) oraz ramkę danych (df), którą chcesz do niego skopiować.
Po skopiowaniu danych warto upewnić się, że operacja przebiegła pomyślnie. Listę wszystkich ramek danych przechowywanych w Sparku możesz wyświetlić za pomocą src_tbls() – funkcja ta przyjmuje tylko jeden argument: połączenie ze Sparkiem (x).
W całym kursie będziesz analizować metadane utworów z Million Song Dataset. Spark bez problemu obsługuje zbiory z milionami wierszy, ale żeby wszystko działało sprawnie, będziesz korzystać z podzbioru tysiąca utworów. Warto wyjaśnić terminologię: utwór (ang. track) odpowiada jednemu wierszowi w zbiorze danych. W tym tysiącoelementowym zbiorze każdy utwór odpowiada jednej piosence (w pełnym zbiorze miliona wierszy zdarzały się duplikaty).
To ćwiczenie jest częścią kursu
Wprowadzenie do Spark z pakietem sparklyr w R
Instrukcje do ćwiczenia
W twoim środowisku pracy jest już zdefiniowana ramka danych track_metadata zawierająca tytuł, nazwę wykonawcy i inne metadane dla 1000 utworów.
- Użyj funkcji
str(), aby zbadać strukturę zbioru danychtrack_metadata. - Połącz się z lokalnym klastrem Spark i zapisz połączenie w zmiennej
spark_conn. - Skopiuj
track_metadatado klastra Spark, używając funkcjicopy_to(). - Sprawdź, które ramki danych są dostępne w Sparku, używając
src_tbls(). - Rozłącz się ze Sparkiem.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Load dplyr
___
# Explore track_metadata structure
___
# Connect to your Spark cluster
spark_conn <- spark_connect("___")
# Copy track_metadata to Spark
track_metadata_tbl <- ___(___, ___, overwrite = TRUE)
# List the data frames available in Spark
___(___)
# Disconnect from Spark
spark_disconnect(___)