【问题标题】:pyspark mllib IndexedRowMatrix type how to get item by indicespyspark mllib IndexedRowMatrix 类型如何按索引获取项目
【发布时间】:2017-02-10 23:10:31
【问题描述】:

是否可以通过提供坐标从 mllib indexedRowMatrix 类型中获取矩阵内容?例如

rows = sc.parallelize([IndexedRow(0, [1, 2, 3]),IndexedRow(1, [4, 5, 6]),IndexedRow(2, [7, 8, 9]),IndexedRow(3, [10, 11, 12])])
mat = IndexedRowMatrix(rows)

如果我给坐标(0,1),我应该从mat得到2

【问题讨论】:

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


    【解决方案1】:

    Spark 矩阵(以及一般的分布式容器)不支持随机访问。可以filter:

    mat.rows.filter(lambda row: row.index == 0).first().vector[1]
    

    但是这个操作在行数方面是线性的。

    【讨论】:

    • @GeoffreyAnderson 由于某种原因,我的智能感知也无法在 jupyter 中工作 - 没有可用于推断 lambda 表达式类型的类型信息。您可以尝试this,但我认为它不适用于 Jupyter。
    猜你喜欢
    • 2015-08-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    相关资源
    最近更新 更多