如何成对地遍历大量数据帧并将值存储在一个 * n 矩阵中?

Chuang

问题描述:

我有一个大约3500 万行10 列的数据集

我想计算两行之间的距离distance(row1,row2)距离函数喜欢,然后将值存储在一个巨大的矩阵中。

完全需要的操作接近6*10^15,我认为这是非常大的。

我试过的:

  1. 上传数据文件到 HDFS
  2. 读取数据作为数据帧
  3. df.collect() 并得到一个 array1 :array[Row]
  4. array1成对遍历并计算距离
  5. 存储distance(rowi,rowj)矩阵(I,J)

斯卡拉代码:

val array1 = df.collect()
val l = array1.length 
for(i <-0 until array.length){
    for(j <-i+1 until array.length){
             val vd = Vectors.dense(i,j,distance(array(i),array(j)))

我想像上面一样将每个值保存在 Vector 中,并将其添加到 RDD/Dataframe。

但我搜索过的唯一方法是使用union。我认为这还不够好。

所以需要解决三个问题:

  1. collect是一个动作函数,df.collect()会抛出 Exception java.lang.OutOf.MemoryError : Java heap space这可以避免吗?
  2. 我一拿到distance(rowi,rowj),就想存起来,怎么办?
  3. 我可以将最终矩阵存储在 HDFS 中并在 python 中将其作为矩阵读取吗?

ps:如果以上都不能解决,我可以使用哪个新想法?

任何答案都会对我有很大帮助,谢谢!

阿布舍克·乔杜里

检查https://spark.apache.org/docs/latest/mllib-data-types.html#indexedrowmatrix IndexedRowMatrix。IndexedRowMatrix 类似于 RowMatrix,但具有有意义的行索引。您可以基于此 API 设计算法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在矩阵中插入'n'列

来自分类Dev

从数据场的n列中为每一行随机选择k个值,并将它们存储到同一数据帧的k列中

来自分类Dev

如何在 JavaScript 中写出 n*n 矩阵值?

来自分类Dev

如何在每个第 n 个矩阵之后将列表中的矩阵插入到不同的矩阵列表中?

来自分类Dev

将NxN矩阵中的值分组为N / 2 x N / 2矩阵

来自分类Dev

根据确定的值向左选择矩阵中的n个元素

来自分类Dev

如何从n维矩阵中获得n维二维子矩阵?

来自分类Dev

如何将一个数据帧列中的N个值交换为N的任何值和任何n(行)?

来自分类Dev

如何根据时间顺序和数据帧中重复的值分配一个从1到N开始的新列?

来自分类Dev

如何创建一个包含两个数据帧的成对比率的矩阵?

来自分类Dev

Julia中N xd矩阵的一般嵌套for循环

来自分类Dev

如何平均矩阵中每行的每n列?

来自分类Dev

如何平均矩阵中每行的每n列?

来自分类Dev

从R中的数据帧创建成对值的平方矩阵

来自分类Dev

Python - 如何遍历数据帧并将一个单元格中的值替换为同一行中另一个单元格中的值

来自分类Dev

将R中矩阵的每一列的最后n个非NA值求和

来自分类Dev

R-根据数据帧中的变量和另一个矩阵的值对矩阵进行子集

来自分类Dev

使用matlab的if操作将矩阵中的值存储到另一个矩阵中

来自分类Dev

存储在矩阵中-n次(n-1)的多项式,每x个一行

来自分类Dev

遍历numpy中的矩阵

来自分类Dev

使用存储在另一个矩阵中的索引访问数据矩阵

来自分类Dev

操纵矩阵中的值

来自分类Dev

操纵矩阵中的值

来自分类Dev

更改矩阵中的值

来自分类Dev

更改矩阵中的值

来自分类Dev

循环遍历数组并将值存储在另一个数组中

来自分类Dev

在R中的大矩阵中相继添加四个/ n数

来自分类Dev

在Matlab中每第n行之后,将矩阵中的序列中的每次插入一行插入另一矩阵中

来自分类Dev

如何从列表中提取索引值并将其替换在另一个特定的数据帧R中?

Related 相关文章

  1. 1

    如何在矩阵中插入'n'列

  2. 2

    从数据场的n列中为每一行随机选择k个值,并将它们存储到同一数据帧的k列中

  3. 3

    如何在 JavaScript 中写出 n*n 矩阵值?

  4. 4

    如何在每个第 n 个矩阵之后将列表中的矩阵插入到不同的矩阵列表中?

  5. 5

    将NxN矩阵中的值分组为N / 2 x N / 2矩阵

  6. 6

    根据确定的值向左选择矩阵中的n个元素

  7. 7

    如何从n维矩阵中获得n维二维子矩阵?

  8. 8

    如何将一个数据帧列中的N个值交换为N的任何值和任何n(行)?

  9. 9

    如何根据时间顺序和数据帧中重复的值分配一个从1到N开始的新列?

  10. 10

    如何创建一个包含两个数据帧的成对比率的矩阵?

  11. 11

    Julia中N xd矩阵的一般嵌套for循环

  12. 12

    如何平均矩阵中每行的每n列?

  13. 13

    如何平均矩阵中每行的每n列?

  14. 14

    从R中的数据帧创建成对值的平方矩阵

  15. 15

    Python - 如何遍历数据帧并将一个单元格中的值替换为同一行中另一个单元格中的值

  16. 16

    将R中矩阵的每一列的最后n个非NA值求和

  17. 17

    R-根据数据帧中的变量和另一个矩阵的值对矩阵进行子集

  18. 18

    使用matlab的if操作将矩阵中的值存储到另一个矩阵中

  19. 19

    存储在矩阵中-n次(n-1)的多项式,每x个一行

  20. 20

    遍历numpy中的矩阵

  21. 21

    使用存储在另一个矩阵中的索引访问数据矩阵

  22. 22

    操纵矩阵中的值

  23. 23

    操纵矩阵中的值

  24. 24

    更改矩阵中的值

  25. 25

    更改矩阵中的值

  26. 26

    循环遍历数组并将值存储在另一个数组中

  27. 27

    在R中的大矩阵中相继添加四个/ n数

  28. 28

    在Matlab中每第n行之后,将矩阵中的序列中的每次插入一行插入另一矩阵中

  29. 29

    如何从列表中提取索引值并将其替换在另一个特定的数据帧R中?

热门标签

归档