MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDBObject không được thêm vào bên trong vòng lặp rrd foreach casbah scala apache spark

Các tính toán trên RDD được phân phối trên cụm. Bạn không thể cập nhật một biến được tạo bên ngoài quá trình đóng hoạt động RDD từ bên trong RDD. Về cơ bản, chúng ở hai nơi khác nhau:Biến được tạo trong trình điều khiển Spark và được truy cập trong công nhân và nên được coi là chỉ đọc.

Spark hỗ trợ các cummulators phân tán có thể được sử dụng trong trường hợp này: Spark Cummulators

Một tùy chọn khác (tùy chọn tôi thích hơn) là chuyển đổi luồng RDD thành định dạng dữ liệu mong muốn và sử dụng foreachRDD phương pháp duy trì nó vào bộ nhớ thứ cấp. Đây sẽ là một cách hiệu quả hơn để tiếp cận vấn đề. Nó gần giống như thế này:

  val filteredStream = twitterStream.filter(entry => filters.exists(term => entry.getText.getStatus.contains(term)))
  val filteredStreamWithTs = filteredStream.map(x => ((DateTime.now.toString(), x)))
  filteredStreamWithTs.foreachRdd(rdd => // write to Mongo)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose có cho phép nhiều yêu cầu cơ sở dữ liệu đồng thời không?

  2. mongodb $ pull khớp với regexp không hoạt động

  3. Lưu trữ Utc và giờ địa phương trong Mongo

  4. Cách xác định đối tượng trong mảng trong lược đồ Mongoose một cách chính xác với chỉ mục địa lý 2d

  5. Dump Bộ sưu tập Mongo sang định dạng JSON