我從使用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. 如何使用火花上下文處理將Seq轉換爲RDD
- 3. 如何將選項[RDD]轉換爲RDD
- 4. 篩選火花RDD
- 5. 火花:RDD列出
- 6. 如何將JSON的RDD轉換爲Dataframe?
- 7. 如何將Array [Row]轉換爲RDD [Row]
- 8. 從火花提取值RDD
- 9. RDD分區火花Streaming
- 10. 火花斯卡拉RDD
- 11. 如何將行轉換爲火花數據幀中的列,scala
- 12. 火花隱式RDD轉換不起作用
- 13. 將RDD [CassandraRow]轉換爲RDD [String]
- 14. 將Rdd [矢量]轉換爲Rdd [雙]
- 15. 將RDD [Array [Row]]轉換爲RDD [Row]
- 16. Pyspark:將RDD轉換爲RowMatrix
- 17. Spark:scala - 如何將RDD的集合轉換爲另一個RDD
- 18. 如何轉的RDD在星火
- 19. Apache Spark:如何將Spark DataFrame轉換爲類型爲RDD [(Type1,Type2,...)]的RDD?
- 20. 如何SparkR數據幀轉換爲RDD
- 21. 模式匹配 - 火花斯卡拉RDD
- 22. 循環內火花RDD過濾器
- 23. 創建從使用火花的RDD
- 24. 火花RDD發現通過鍵
- 25. saveAsTextFile非RDD火花斯卡拉
- 26. 找到孔成一個DateTime火花RDD
- 27. 火花RDD容錯的誤區
- 28. 將pyspark分組的數據對象轉換爲火花Dataframe
- 29. 將元素對轉換爲火花中的矩陣
- 30. 將數據轉換爲火花scala中的類對象列表
有關如何的RDD變換成IDS請參閱 [本要旨](https://gist.github.com/rawkintrevo/c1bb00896263bdc067ddcd8299f4794c)的示例 – rawkintrevo