Để phát sóng một biến như vậy mà một biến xảy ra đúng một lần trong bộ nhớ mỗi nút trên một cụm ai có thể làm: val myVarBroadcasted = sc.broadcast(myVar)
sau đó lấy nó trong biến đổi RDD như vậy:Làm thế nào để loại bỏ/xử lý một biến phát sóng từ heap trong Spark?
myRdd.map(blar => {
val myVarRetrieved = myVarBroadcasted.value
// some code that uses it
}
.someAction
Nhưng giả sử bây giờ tôi muốn thực hiện một số chi tiết hành động với biến phát sóng mới - điều gì sẽ xảy ra nếu tôi không có đủ dung lượng lưu trữ do các biến phát sóng cũ ?! Tôi muốn có một chức năng như
myVarBroadcasted.remove()
Bây giờ tôi dường như không thể tìm ra cách để làm điều này.
Ngoài ra, một câu hỏi rất có liên quan: các biến phát sóng đi đâu? Họ có đi vào phần bộ nhớ cache của tổng bộ nhớ hay chỉ trong phần heap?
@aaronman yep. chỉnh sửa câu trả lời để thả tham chiếu đến 'phá hủy'. –
Cảm ơn. Dường như đây chỉ là trong Spark +1.0.0, không phải 0.9.0. – samthebest
"Lưu trữ khôn ngoan chúng được xử lý tương tự như RDD", điều này có nghĩa là chúng nằm trong phần cache? Hay Heap? – samthebest