Menyimpan hasil antara
Seperti yang Anda lihat di Bab 1, menyalin data antara R dan Spark pada dasarnya adalah tugas yang lambat. Artinya, mengumpulkan data, seperti pada latihan sebelumnya, sebaiknya hanya dilakukan saat benar-benar diperlukan.
Operator pipe sangat nyaman untuk merangkaikan perintah manipulasi data, tetapi secara umum, Anda tidak bisa melakukan seluruh analisis dengan semuanya dirangkai terus-menerus. Misalnya, ini adalah praktik yang buruk karena Anda tidak akan pernah bisa melakukan debug kode Anda.
final_results <- starting_data %>%
# 743 langkah dirangkai
# ... %>%
collect()
Itu menimbulkan dilema. Anda perlu menyimpan hasil perhitungan antara, tetapi Anda tidak ingin mengumpulkannya karena lambat. Solusinya adalah menggunakan compute() untuk menghitung perhitungannya, namun menyimpan hasilnya dalam data frame sementara di Spark. compute menerima dua argumen: sebuah tibble, dan sebuah nama variabel untuk Spark data frame yang akan menyimpan hasilnya.
a_tibble %>%
# beberapa perhitungan %>%
compute("intermediate_results")
Latihan ini merupakan bagian dari kursus
Pengantar Spark dengan sparklyr di R
Instruksi latihan
Sebuah koneksi Spark telah dibuat untuk Anda sebagai spark_conn. Sebuah tibble yang terhubung ke metadata lagu yang disimpan di Spark telah didefinisikan sebelumnya sebagai track_metadata_tbl.
- Saring baris
track_metadata_tbldenganartist_familiaritylebih besar dari 0,8. - Hitung hasilnya menggunakan
compute().- Simpan hasilnya dalam Spark data frame bernama
"familiar_artists". - Tetapkan hasilnya ke tibble R bernama
computed.
- Simpan hasilnya dalam Spark data frame bernama
- Lihat himpunan data Spark yang tersedia menggunakan
src_tbls(). - Cetak
class()daricomputed. Perhatikan bahwa berbeda dengancollect(),compute()mengembalikan remote tibble. Datanya masih tersimpan di kluster Spark.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
computed <- track_metadata_tbl %>%
# Filter where artist familiarity is greater than 0.8
___ %>%
# Compute the results
___
# See the available datasets
___
# Examine the class of the computed results
___