Python从DenseVector激发到列

时间:2017-09-05 09:05:09

标签: python apache-spark pyspark spark-dataframe apache-spark-mllib

我在Spark中将Logistic回归应用于我的数据,现在想要拆分“概率”列(每次都是2个值的DenseVector)。

这是一个二元分类,所以“概率”由几个像:

组成

>>> predictions.head(1)

[Row(scaledFeatures=SparseVector(10, {4: 4.398, 6: 2.2351}), rawPrediction=DenseVector([4.4453, -4.4453]), probability=DenseVector([0.9829, 0.0171]), prediction=0.0)]

如何获得仅包含第二个“概率”值的新列(此处为0.0171)?

我试过了 predictions.withColumn('prob', predictions['probability'][1]),但收到了错误:

  

追踪(最近一次通话):     文件“”,第1行,in     文件“/usr/hdp/current/spark-client/python/pyspark/sql/dataframe.py”,第1314行,in withColumn       返回DataFrame(self._jdf.withColumn(colName,col._jc),self.sql_ctx)     在电话中输入文件“/usr/hdp/current/spark-client/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py”,第813行     文件“/usr/hdp/current/spark-client/python/pyspark/sql/utils.py”,第51行,装饰       提升AnalysisException(s.split(':',1)[1],stackTrace)   pyspark.sql.utils.AnalysisException:u“无法从概率#827中提取值;”

0 个答案:

没有答案