Mengecilkan data dengan sampling
Saat Anda bekerja dengan himpunan data besar, Anda biasanya tidak perlu selalu menggunakan semuanya. Terutama pada awal proyek, ketika Anda masih banyak bereksperimen dengan apa yang ingin dilakukan, Anda sering dapat beriterasi lebih cepat dengan bekerja pada subset data yang lebih kecil. sdf_sample() menyediakan cara yang mudah untuk melakukan hal ini. Fungsi ini menerima sebuah tibble dan fraksi baris yang ingin dikembalikan. Dalam kasus ini, Anda ingin melakukan sampling tanpa pengembalian (without replacement). Untuk mendapatkan sampel acak sebesar sepersepuluh dari himpunan data Anda, gunakan kode berikut.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
Karena hasil sampling bersifat acak, dan Anda kemungkinan ingin menggunakan kembali himpunan data yang diperkecil tersebut, lazim untuk menggunakan compute() guna menyimpan hasilnya sebagai Spark DataFrame lain.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
Agar hasilnya dapat direproduksi, Anda juga dapat menyetel seed bilangan acak melalui argumen seed. Dengan melakukan ini, Anda akan mendapatkan himpunan data acak yang sama setiap kali menjalankan kode Anda. Nomor seed yang digunakan tidak penting; pilih saja bilangan bulat positif favorit Anda.
Latihan ini merupakan bagian dari kursus
Pengantar Spark dengan sparklyr di R
Instruksi latihan
Koneksi Spark telah dibuat untuk Anda sebagai spark_conn. Sebuah tibble yang terhubung ke metadata track yang disimpan di Spark telah didefinisikan sebelumnya sebagai track_metadata_tbl.
- Gunakan
sdf_sample()untuk mengambil sampel 1% metadata track tanpa pengembalian.- Berikan
20000229ke argumenseeduntuk menyetel seed acak.
- Berikan
- Hitung hasilnya, dan simpan dalam tabel bernama
"sample_track_metadata".
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___