【问题标题】:Create an identity matrix of densevectors as a Spark dataframe创建一个密集向量的单位矩阵作为 Spark 数据帧
【发布时间】:2017-02-08 16:04:54
【问题描述】:

我需要了解如何在 Spark 中创建任意大小的 DenseVectors 单位矩阵。我试图从mllib.linalg.distributed 模块做一些事情,但无济于事。我需要的是一个具有一列“特征”的数据框,其中 DenseVectors 作为其行,其中每一行是单位矩阵中的对应行。

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql apache-spark-mllib


    【解决方案1】:

    pyspark.mllib.linalg.distributed 简单明了:

    from pyspark.mllib.linalg.distributed import MatrixEntry, CoordinateMatrix
    from pyspark import SparkContext
    
    def identity(n: int, sc: SparkContext) -> CoordinateMatrix:
        return CoordinateMatrix(
            sc.range(n).map(lambda i: MatrixEntry(i, i, 1.0)), n, n)
    

    使用DataFramesDenseVectors 没有多大意义。首先DataFrames 没有排序,不支持代数运算。此外,使用DenseVectors 会导致任何大小的矩阵出现内存问题,在这种情况下使用分布式数据结构是合理的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-17
      • 2018-07-15
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      相关资源
      最近更新 更多