我從使用sc.textFile()的Mahout中的Alluxio中獲取數據,但它是spark RDD。我的程序進一步使用這個火花RDD作爲Mahout DRM,因此我需要將RDD轉換爲DRM。所以我現在的代碼保持穩定。如何將火花RDD轉換爲mahout DRM?
3
A
回答
2
一個Apache亨利馬烏DRM可從Apache火花RDD在下面的步驟中創建:
- 轉換的RDD的每一行成亨利馬烏矢量
- 拉鍊的RDD與指數(和交換,以便該元組的形式是
(Long, Vector)
- 包住RDD與DRM的
考慮以下示例代碼:
val rddA = sc.parallelize(Array((1.0, 2.0, 3.0),
(2.0, 3.0, 4.0),
(4.0, 5.0, 6.0)))
val drmRddA: DrmRdd[Long] = rddA.map(a => new DenseVector(a))
.zipWithIndex()
.map(t => (t._2, t._1))
val drmA = drmWrap(rdd= drmRddA)
來源/更多信息/無恥的自我推廣(朝底部):my Blog
1
與數據轉換的主要問題往往是Mahout的使用整數引用通用矩陣的行數和列數,但數據通常有它自己的行和列鍵,它們是某種類型的字符串ID。
Mahout擁有一個名爲IndexedDatasetSpark
的對象,該對象保留BiMaps
(實際上是BiDictionaries
)中的ID,但也創建了Mahout DRM。好處是在數學完成後,字典會將行和列的整數轉換回您的ID。
如果你有一個矩陣元素的RDD [String,String],它將進行轉換。如果你有一排行,你可以從這開始編碼你自己的轉換。
相關問題
- 1. 如何將矩陣轉換爲火花中的RDD [矢量]
- 2. 我可以將熊貓數據框轉換爲火花rdd嗎?
- 3. 將火花rdd轉換爲熊貓數據幀
- 4. 如何使用火花上下文處理將Seq轉換爲RDD
- 5. 如何將選項[RDD]轉換爲RDD
- 6. 如何轉換卡夫卡流火花RDD或Spark數據幀
- 7. 火花數據幀轉換爲rdd需要很長時間
- 8. 我怎麼火花數據幀轉換爲RDD並獲得話
- 9. 在RDD火花階
- 10. 火花:RDD列出
- 11. 篩選火花RDD
- 12. 如何將RDD [List [Int]]轉換爲DataFrame?
- 13. 如何將JSON的RDD轉換爲Dataframe?
- 14. 如何將Array [Row]轉換爲RDD [Row]
- 15. 火花斯卡拉RDD
- 16. 火花:另一個RDD
- 17. RDD濾波器階火花
- 18. 從火花提取值RDD
- 19. RDD分區火花Streaming
- 20. 火花隱式RDD轉換不起作用
- 21. 在斯卡拉轉換火花數據幀到RDD
- 22. 如何將行轉換爲火花數據幀中的列,scala
- 23. 將Rdd [矢量]轉換爲Rdd [雙]
- 24. 將RDD [org.apache.spark.sql.Row]轉換爲RDD [org.apache.spark.mllib.linalg.Vector]
- 25. 將RDD [CassandraRow]轉換爲RDD [String]
- 26. 將RDD [Array [Row]]轉換爲RDD [Row]
- 27. Pyspark:將RDD轉換爲RowMatrix
- 28. 將RDD轉換爲DataFrame
- 29. 將iterable轉換爲RDD
- 30. 如何將RDD [List [String]]轉換爲RDD [String]
有關如何的RDD變換成IDS請參閱 [本要旨](https://gist.github.com/rawkintrevo/c1bb00896263bdc067ddcd8299f4794c)的示例 – rawkintrevo