我在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中提取值;”