Caching Teragih Dengan Pembolehubah Siaran: Apache Spark



Catatan blog ini membincangkan cached terdistribusi dengan pemboleh ubah siaran & membuat anda mula menyebarkan nilai besar dalam pengaturcaraan Spark dengan cekap.

Disumbangkan oleh Prithviraj Bose





Pemboleh ubah siaran berguna apabila set data besar perlu di-cache dalam pelaksana. Blog ini menerangkan cara memulakan.

Apakah Pembolehubah Siaran?



Pemboleh ubah siaran dalam Apache Spark adalah mekanisme untuk berkongsi pemboleh ubah di seluruh pelaksana yang dimaksudkan untuk hanya baca. Tanpa pembolehubah siaran pemboleh ubah ini akan dihantar ke setiap pelaksana untuk setiap transformasi dan tindakan, dan ini dapat menyebabkan overhead jaringan. Walau bagaimanapun, dengan pemboleh ubah siaran, ia dihantar sekali ke semua pelaksana dan disimpan dalam cache untuk rujukan di masa hadapan.

Kes Penggunaan Pembolehubah Siaran

Bayangkan bahawa semasa melakukan transformasi, kita perlu mencari sebilangan besar kod pos / kod pin. Di sini, tidak mustahil untuk mengirim jadual pencarian besar setiap kali kepada pelaksana, juga kita tidak dapat membuat pertanyaan mengenai pangkalan data setiap saat. Penyelesaiannya adalah dengan menukar jadual pencarian ini ke pemboleh ubah siaran dan Spark akan menyimpannya dalam setiap pelaksana untuk rujukan di masa depan.

Mari kita ambil contoh mudah untuk memahami konsep di atas. Kami mempunyai fail CSV dengan nama negara dan ibu kotanya. Fail CSV boleh didapati di sini .



menukar binari ke int java

CSV-file-distributed-caching

Dengan andaian kita memproses data demografi negara dan kita perlu mendapatkan modal negara tersebut. Dalam kes ini kita dapat menukar data dalam fail CSV menjadi pemboleh ubah siaran.

Mula-mula kita memuatkan fail CSV dalam peta, jika fail itu dijumpai maka kaedahnya kembali Sebilangan (negara) lain ia kembali Tiada .

Setelah berjaya memuatkan fail CSV kami menukar peta menjadi pemboleh ubah siaran dan menggunakannya dalam program kami.

Dalam coretan kod di atas, kami memuatkan fail CSV ke peta negara kemudian kita menukar peta itu ke pemboleh ubah siaran negaraCache . Selepas itu, kami membuat RDD dari kunci negara . Di dalam carianCountryDetails kaedah kami mencari semua negara bermula dengan huruf yang ditentukan pengguna dan kaedah mengembalikan RDD negara bersama dengan ibukota mereka. Pemboleh ubah siaran countrieCache digunakan untuk mencari ibu kota.
Dengan cara ini kita tidak perlu menghantar keseluruhan data CSV setiap kali kita perlu mencari.

Kod untuk carianCountryDetails ditunjukkan di bawah,

Keseluruhan kod sumber boleh didapati di sini .

Ada soalan untuk kami? Sebutkannya di bahagian komen dan kami akan menghubungi anda.

Catatan berkaitan:

Penjana Spark Dijelaskan

Apache Spark menggabungkanByKey Dijelaskan