2015-07-17 14 views
11

Tôi có đối tượng MatrixFactorizationModel. Nếu tôi đang cố gắng giới thiệu sản phẩm cho người dùng đơn lẻ ngay sau khi xây dựng mô hình thông qua ALS.train (...) thì phải mất 300ms (đối với dữ liệu và phần cứng của tôi). Nhưng nếu tôi lưu mô hình vào đĩa và tải lại thì đề xuất mất gần 2000 mili giây. Ngoài ra Spark cũng cảnh báo:Lưu/tải phù hợp của MatrixFactorizationModel

15/07/17 11:05:47 WARN MatrixFactorizationModel: User factor does not have a partitioner. Prediction on individual records could be slow. 
15/07/17 11:05:47 WARN MatrixFactorizationModel: User factor is not cached. Prediction could be slow. 
15/07/17 11:05:47 WARN MatrixFactorizationModel: Product factor does not have a partitioner. Prediction on individual records could be slow. 
15/07/17 11:05:47 WARN MatrixFactorizationModel: Product factor is not cached. Prediction could be slow. 

Làm cách nào để tạo/đặt phân vùng và bộ nhớ cache của người dùng và các yếu tố sản phẩm sau khi tải mô hình? Phương pháp tiếp cận sau không giúp được:

model.userFeatures().cache(); 
model.productFeatures().cache(); 

Ngoài ra tôi đang cố gắng phân vùng lại các rdd và tạo mô hình mới từ các phiên bản được phân bổ lại nhưng điều đó cũng không giúp ích gì.

+0

Tôi không thể để tái tạo Các thông điệp cảnh báo rằng bạn đã chia sẻ. Bạn có thể vui lòng chia sẻ một số mã. – Vishnu667

Trả lời

2

Bạn không phải sử dụng dấu ngoặc đơn, userFeatures là RDD của (Int, Array [Double]) không tham số.

này sẽ giúp bạn:

model.userFeatures.cache 
model.productFeatures.cache 
Các vấn đề liên quan