PySpark Foreach

时间:2019-04-18 20:44:08

标签: python apache-spark pyspark

我正在使用spark ml,并希望从DataFrame的概率列中的模型获得概率值。

这有效:

proba_classe_0 = df.rdd.map(lambda row: row.probability[0])

但是它给了我rdd。 我知道ml是基于rdd的,而mllib现在是基于df的。 我尝试使用foreach:

df2.foreach(lambda r: r.probability[0])

但是它什么也没有回报。

我有两个问题:

  1. 如何使foreach工作?我不知道
  2. 最终我正在尝试使用BinaryClassificationMetrics 正如我们在这里看到的:https://spark.apache.org/docs/2.3.0/api/python/pyspark.mllib.html?highlight=binaryclassificationmetrics#pyspark.mllib.evaluation.BinaryClassificationMetrics。 当我可以完成两个所需的值时,如何压缩它们以将它们作为DF重新放回原处?

代码:

proba_classe_1 = df.rdd.map(lambda row: row.probability[1])
truth          = df.rdd.map(lambda row: row.label         )
spark.createDataFrame(proba_classe_0)
TypeError: Can not infer schema for type: <class 'numpy.float64'>

0 个答案:

没有答案