Mulai sekarangMulai gratis

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

Lihat Kursus

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_tbl dengan artist_familiarity lebih besar dari 0,8.
  • Hitung hasilnya menggunakan compute().
    • Simpan hasilnya dalam Spark data frame bernama "familiar_artists".
    • Tetapkan hasilnya ke tibble R bernama computed.
  • Lihat himpunan data Spark yang tersedia menggunakan src_tbls().
  • Cetak class() dari computed. Perhatikan bahwa berbeda dengan collect(), 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
___
Edit dan Jalankan Kode