2015-06-25 14 views
6

Trong Hadoop, bạn có thể sử dụng bộ nhớ cache được phân phối để sao chép các tệp chỉ đọc trên mỗi nút. Cách tương tự để làm như vậy trong Spark là gì? Tôi biết về các biến phát sóng, nhưng điều đó chỉ tốt cho các biến, chứ không phải các tệp.Tương đương với Cache được phân phối trong Spark?

+0

lý do tại sao bạn có thể tải tập tin trong danh sách hoặc bản đồ và sau đó phát sóng nó ?? – banjara

Trả lời

5

Hãy xem SparkContext.addFile()

Thêm một tập tin được tải về với công việc Spark này trên tất cả các nút. Đường dẫn được truyền có thể là tệp cục bộ, tệp trong HDFS (hoặc các hệ thống tệp được Hadoop hỗ trợ khác) hoặc URI HTTP, HTTPS hoặc FTP. Để truy cập tệp trong công việc Spark, hãy sử dụng SparkFiles.get (tên tệp) để tìm vị trí tải xuống của tệp.

Một thư mục có thể được cung cấp nếu tùy chọn đệ quy được đặt thành true. Hiện tại các thư mục chỉ được hỗ trợ cho các hệ thống tệp được Hadoop hỗ trợ.

+0

Nó cũng sẽ hoạt động với S3 của Amazon? – MetallicPriest

+1

Không chắc chắn 100%, nhưng tôi tin rằng nó sẽ (không thể kiểm tra nó ngay bây giờ). Spark đang quay trở lại Đường dẫn của Hadoop cho các URI không phải là http/ftp: https://github.com/apache/spark/blob/43f50decdd20fafc55913c56ffa30f56040090e4/core/src/main/scala/org/apache/spark/SparkContext.scala#L1325 và Tôi nghĩ rằng nó xử lý S3 URI. –

-3

nếu các tập tin của bạn là các tập tin văn bản, sống trong HDFS, sau đó, bạn có thể sử dụng:

textFile("<hdfs-path>") của "SparkContext".

cuộc gọi này sẽ cung cấp cho bạn RDD, mà bạn có thể duy trì trên các nút, bằng cách sử dụng phương pháp: "persist()" của RDD đó.

phương pháp này có thể lưu trữ dữ liệu tệp (được tuần tự hóa/xóa bỏ), trong MEMORY/DISK.

tham khảo:

http://spark.apache.org/docs/latest/programming-guide.html#which-storage-level-to-choose

+0

Điều này KHÔNG đặt tệp trên mỗi nút. Nó phân phối nó trên các nút. –

+0

@TheArchetypalPaul: vâng, bạn nói đúng. Tôi bỏ qua yêu cầu và đề xuất persist(), mà chỉ giao dịch với phân vùng riêng của RDD, thay vì sao chép toàn bộ tệp trên mỗi nút trong cụm. –

Các vấn đề liên quan