【发布时间】:2015-12-04 01:55:29
【问题描述】:
在 PySpark 1.4.1 中将 SparseVector 转换为 DenseVector 时出现意外错误:
from pyspark.mllib.linalg import SparseVector, DenseVector
DenseVector(SparseVector(5, {4: 1.}))
这在 Ubuntu 上运行正常,运行 pyspark,返回:
密集向量([0.0, 0.0, 0.0, 0.0, 1.0])
这会导致 RedHat 出现错误,运行 pyspark,返回:
Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件“/usr/lib/spark/python/pyspark/mllib/linalg.py”,行 206,在 初始化 ar = np.array(ar, dtype=np.float64) 文件“/usr/lib/spark/python/pyspark/mllib/linalg.py”,第 673 行,在 获取项目 raise ValueError("Index %d out of bounds." % index) ValueError: Index 5 out of bounds.
此外,在这两个平台上,评估以下内容也会导致错误:
DenseVector(SparseVector(5, {0: 1.}))
我希望:
密集向量([1.0, 0.0, 0.0, 0.0, 0.0])
但得到:
- Ubuntu:
Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 “/home/skander/spark-1.4.1-bin-hadoop2.6/python/pyspark/mllib/linalg.py”, 第 206 行,在 init 中 ar = np.array(ar, dtype=np.float64) 文件“/home/skander/spark-1.4.1-bin-hadoop2.6/python/pyspark/mllib/linalg.py”, 第 676 行,在 getitem 中 row_ind = inds[insert_index] IndexError: index out of bounds
注意:这个错误信息与上一个不同,虽然错误发生在同一个函数中(代码在https://spark.apache.org/docs/latest/api/python/_modules/pyspark/mllib/linalg.html)
- RedHat:同样的命令会导致分段错误,从而导致 Spark 崩溃。
【问题讨论】:
标签: python numpy apache-spark pyspark