สนับสนุนโดย Prithviraj Bose
ตัวแปรการออกอากาศมีประโยชน์เมื่อต้องแคชชุดข้อมูลขนาดใหญ่ในตัวดำเนินการ บล็อกนี้จะอธิบายวิธีการเริ่มต้น
ตัวแปรการออกอากาศคืออะไร?
ตัวแปร Broadcast ใน Apache Spark เป็นกลไกสำหรับการแบ่งปันตัวแปรระหว่างตัวดำเนินการที่มีไว้สำหรับอ่านอย่างเดียว หากไม่มีตัวแปรออกอากาศตัวแปรเหล่านี้จะถูกส่งไปยังตัวดำเนินการสำหรับการแปลงและการกระทำทุกครั้งและอาจทำให้เกิดค่าใช้จ่ายของเครือข่ายได้ อย่างไรก็ตามด้วยตัวแปรการออกอากาศตัวแปรเหล่านี้จะถูกส่งไปยังตัวดำเนินการทั้งหมดเพียงครั้งเดียวและจะถูกแคชไว้สำหรับการอ้างอิงในอนาคต
แปลงไบนารีเป็น int java
ตัวแปรการออกอากาศกรณีการใช้งาน
ลองนึกภาพว่าในขณะที่ทำการเปลี่ยนแปลงเราจำเป็นต้องค้นหาตารางรหัสไปรษณีย์ / รหัสพินจำนวนมาก ที่นี่เป็นไปไม่ได้ที่จะส่งตารางการค้นหาขนาดใหญ่ทุกครั้งไปยังผู้ดำเนินการและเราไม่สามารถสอบถามฐานข้อมูลได้ทุกครั้ง วิธีแก้ปัญหาคือการแปลงตารางการค้นหานี้เป็นตัวแปรออกอากาศและ Spark จะแคชไว้ในตัวดำเนินการทุกตัวเพื่อใช้อ้างอิงในอนาคต
เรามาดูตัวอย่างง่ายๆเพื่อทำความเข้าใจแนวคิดข้างต้น เรามีไฟล์ CSV ที่มีชื่อประเทศและเมืองหลวงของพวกเขา ไฟล์ CSV สามารถพบได้ ที่นี่ .
สมมติว่าเรากำลังประมวลผลข้อมูลประชากรของประเทศต่างๆและเราจำเป็นต้องได้รับเมืองหลวงของประเทศนั้น ในกรณีนี้เราสามารถแปลงข้อมูลในไฟล์ CSV เป็นตัวแปรกระจาย
ขั้นแรกให้เราโหลดไฟล์ CSV ในแผนที่หากพบไฟล์แล้ววิธีการจะกลับมา บางประเทศ) มิฉะนั้นจะกลับมา ไม่มี .
หลังจากโหลดไฟล์ CSV สำเร็จเราจะแปลงแผนที่เป็นตัวแปรออกอากาศและใช้ในโปรแกรมของเรา
java สำเนาลึกและตื้น
ในข้อมูลโค้ดด้านบนเราโหลดไฟล์ CSV ลงในแผนที่ ประเทศ จากนั้นเราจะแปลงแผนที่นั้นเป็นตัวแปรการออกอากาศ ประเทศแคช . ต่อจากนั้นเราสร้าง RDD จากคีย์ของ ประเทศ . ใน searchCountryDetails เราค้นหาประเทศทั้งหมดที่เริ่มต้นด้วยตัวอักษรที่ผู้ใช้กำหนดและวิธีการนี้จะส่งคืน RDD ของประเทศพร้อมกับเมืองหลวงของพวกเขา ตัวแปรการออกอากาศ countrieCache ใช้สำหรับค้นหาเมืองหลวง
ด้วยวิธีนี้เราไม่จำเป็นต้องส่งข้อมูล CSV ทั้งหมดทุกครั้งที่เราต้องการค้นหา
รหัสสำหรับ searchCountryDetails แสดงไว้ด้านล่าง
สามารถหาซอร์สโค้ดทั้งหมดได้ ที่นี่ .
มีคำถามสำหรับเรา? พูดถึงพวกเขาในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป
กระทู้ที่เกี่ยวข้อง: