การแคชแบบกระจายด้วยตัวแปร Broadcast: Apache Spark



โพสต์บล็อกนี้กล่าวถึงการแคชแบบกระจายกับตัวแปรการออกอากาศและช่วยให้คุณเริ่มต้นแจกจ่ายค่าขนาดใหญ่อย่างมีประสิทธิภาพในการเขียนโปรแกรม Spark

สนับสนุนโดย Prithviraj Bose





ตัวแปรการออกอากาศมีประโยชน์เมื่อต้องแคชชุดข้อมูลขนาดใหญ่ในตัวดำเนินการ บล็อกนี้จะอธิบายวิธีการเริ่มต้น

ตัวแปรการออกอากาศคืออะไร?



ตัวแปร Broadcast ใน Apache Spark เป็นกลไกสำหรับการแบ่งปันตัวแปรระหว่างตัวดำเนินการที่มีไว้สำหรับอ่านอย่างเดียว หากไม่มีตัวแปรออกอากาศตัวแปรเหล่านี้จะถูกส่งไปยังตัวดำเนินการสำหรับการแปลงและการกระทำทุกครั้งและอาจทำให้เกิดค่าใช้จ่ายของเครือข่ายได้ อย่างไรก็ตามด้วยตัวแปรการออกอากาศตัวแปรเหล่านี้จะถูกส่งไปยังตัวดำเนินการทั้งหมดเพียงครั้งเดียวและจะถูกแคชไว้สำหรับการอ้างอิงในอนาคต

แปลงไบนารีเป็น int java

ตัวแปรการออกอากาศกรณีการใช้งาน

ลองนึกภาพว่าในขณะที่ทำการเปลี่ยนแปลงเราจำเป็นต้องค้นหาตารางรหัสไปรษณีย์ / รหัสพินจำนวนมาก ที่นี่เป็นไปไม่ได้ที่จะส่งตารางการค้นหาขนาดใหญ่ทุกครั้งไปยังผู้ดำเนินการและเราไม่สามารถสอบถามฐานข้อมูลได้ทุกครั้ง วิธีแก้ปัญหาคือการแปลงตารางการค้นหานี้เป็นตัวแปรออกอากาศและ Spark จะแคชไว้ในตัวดำเนินการทุกตัวเพื่อใช้อ้างอิงในอนาคต

เรามาดูตัวอย่างง่ายๆเพื่อทำความเข้าใจแนวคิดข้างต้น เรามีไฟล์ CSV ที่มีชื่อประเทศและเมืองหลวงของพวกเขา ไฟล์ CSV สามารถพบได้ ที่นี่ .



CSV-file-distributed-caching

สมมติว่าเรากำลังประมวลผลข้อมูลประชากรของประเทศต่างๆและเราจำเป็นต้องได้รับเมืองหลวงของประเทศนั้น ในกรณีนี้เราสามารถแปลงข้อมูลในไฟล์ CSV เป็นตัวแปรกระจาย

ขั้นแรกให้เราโหลดไฟล์ CSV ในแผนที่หากพบไฟล์แล้ววิธีการจะกลับมา บางประเทศ) มิฉะนั้นจะกลับมา ไม่มี .

หลังจากโหลดไฟล์ CSV สำเร็จเราจะแปลงแผนที่เป็นตัวแปรออกอากาศและใช้ในโปรแกรมของเรา

java สำเนาลึกและตื้น

ในข้อมูลโค้ดด้านบนเราโหลดไฟล์ CSV ลงในแผนที่ ประเทศ จากนั้นเราจะแปลงแผนที่นั้นเป็นตัวแปรการออกอากาศ ประเทศแคช . ต่อจากนั้นเราสร้าง RDD จากคีย์ของ ประเทศ . ใน searchCountryDetails เราค้นหาประเทศทั้งหมดที่เริ่มต้นด้วยตัวอักษรที่ผู้ใช้กำหนดและวิธีการนี้จะส่งคืน RDD ของประเทศพร้อมกับเมืองหลวงของพวกเขา ตัวแปรการออกอากาศ countrieCache ใช้สำหรับค้นหาเมืองหลวง
ด้วยวิธีนี้เราไม่จำเป็นต้องส่งข้อมูล CSV ทั้งหมดทุกครั้งที่เราต้องการค้นหา

รหัสสำหรับ searchCountryDetails แสดงไว้ด้านล่าง

สามารถหาซอร์สโค้ดทั้งหมดได้ ที่นี่ .

มีคำถามสำหรับเรา? พูดถึงพวกเขาในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป

กระทู้ที่เกี่ยวข้อง:

อธิบาย Spark Accumulators

Apache Spark รวม ByKey อธิบาย