【发布时间】:2016-04-07 02:47:57
【问题描述】:
IndexedRowMatrix 类的 PySpark 包装器不包含所有方法 - 特别是,即使它包含在它包装的 Java 实现中,也缺少 multiply() 方法。我尝试将其手动添加到 PySpark/MlLib/inalg/distributed.py 中,如下:
def multiply(self, other):
other_java_matrix = other._java_matrix_wrapper._java_model
java_matrix = self._java_matrix_wrapper.call("multiply", other_java_matrix)
return IndexedRowMatrix(java_matrix)
但是,当我尝试使用此方法时出现以下错误:
py4j.Py4JException:方法 multiply([class org.apache.spark.mllib.linalg.distributed.IndexedRowMatrix]) 不存在 在 py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:335) 在 py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:344) 在 py4j.Gateway.invoke(Gateway.java:252) 在 py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133) 在 py4j.commands.CallCommand.execute(CallCommand.java:79) 在 py4j.GatewayConnection.run(GatewayConnection.java:209) 在 java.lang.Thread.run(Thread.java:745)
这是 Spark 版本 1.6.1,因此它应该包含此方法 AFAIK。我错过了什么吗?
【问题讨论】:
标签: python apache-spark pyspark apache-spark-mllib