Bộ nhớ đệm phân tán với các biến phát sóng: Apache Spark



Bài đăng trên blog này thảo luận về bộ nhớ đệm phân tán với các biến phát sóng và giúp bạn bắt đầu phân phối hiệu quả các giá trị lớn trong lập trình Spark.

Đóng góp bởi Prithviraj Bose





Các biến quảng bá hữu ích khi các tập dữ liệu lớn cần được lưu vào bộ nhớ đệm trong các trình thực thi. Blog này giải thích cách bắt đầu.

Biến Broadcast là gì?



Các biến quảng bá trong Apache Spark là một cơ chế để chia sẻ các biến giữa các trình thực thi có nghĩa là chỉ đọc. Nếu không có các biến quảng bá, các biến này sẽ được chuyển đến từng người thực thi cho mọi chuyển đổi và hành động, và điều này có thể gây ra chi phí mạng. Tuy nhiên, với các biến quảng bá, chúng được chuyển một lần đến tất cả những người thực thi và được lưu vào bộ nhớ đệm để tham khảo trong tương lai.

sự khác biệt giữa html và xml là gì

Trường hợp sử dụng biến Broadcast

Hãy tưởng tượng rằng trong khi thực hiện một chuyển đổi, chúng ta cần tra cứu một bảng lớn mã zip / mã pin. Ở đây, việc gửi bảng tra cứu lớn mỗi lần cho người thực thi là không khả thi, cũng như chúng ta không thể truy vấn cơ sở dữ liệu mỗi lần. Giải pháp nên là chuyển đổi bảng tra cứu này thành một biến phát sóng và Spark sẽ lưu nó vào bộ nhớ cache trong mọi trình thực thi để tham khảo trong tương lai.

Hãy lấy một ví dụ đơn giản để hiểu các khái niệm trên. Chúng tôi có một tệp CSV với tên của các quốc gia và thủ đô của họ. Tệp CSV có thể được tìm thấy đây .



CSV-file-distributed-caching

Giả sử chúng tôi đang xử lý dữ liệu nhân khẩu học của các quốc gia và chúng tôi cần lấy thủ đô của quốc gia đó. Trong trường hợp này, chúng tôi có thể chuyển đổi dữ liệu trong tệp CSV thành một biến quảng bá.

Trước tiên, chúng tôi tải tệp CSV trong bản đồ, nếu tệp được tìm thấy thì phương thức trả về Một vài đất nước) nếu không nó trở lại không ai .

Sau khi tải thành công tệp CSV, chúng tôi chuyển đổi bản đồ thành một biến quảng bá và sử dụng nó trong chương trình của chúng tôi.

triển khai hàng đợi ưu tiên c ++

Trong đoạn mã ở trên, chúng tôi tải tệp CSV vào bản đồ Quốc gia sau đó chúng tôi chuyển đổi bản đồ đó thành một biến quảng bá countryCache . Sau đó, chúng tôi tạo một RDD từ các khóa của Quốc gia . bên trong searchCountryDetails chúng tôi tìm kiếm tất cả các quốc gia bắt đầu bằng chữ cái do người dùng xác định và phương thức này trả về RDD của các quốc gia cùng với thủ đô của họ. Biến quảng bá countrieCache được sử dụng để tra cứu các thủ đô.
Bằng cách này, chúng tôi không cần gửi toàn bộ dữ liệu CSV mỗi khi chúng tôi cần tìm kiếm.

Mã cho searchCountryDetails được hiển thị bên dưới,

Toàn bộ mã nguồn có thể được tìm thấy đây .

Có một câu hỏi cho chúng tôi? Đề cập đến họ trong phần bình luận và chúng tôi sẽ liên hệ lại với bạn.

Bài viết liên quan:

Giải thích về bộ tích lũy tia lửa

Apache Spark kết hợpByKey Giải thích