如何在数据框的行数上循环pyspark数据框

时间:2019-06-07 07:38:29

标签: pyspark

我的pyspark数据框为“值”:

+------+
|w_vote|
+------+
|   0.1|
|   0.2|
|  0.25|
|   0.3|
|  0.31|
|  0.36|
|  0.41|
|   0.5|

我想使用pyspark循环到df的每个值

我的代码:

out = []
for i in values.collect():
    print(i)

我基本上想做的是(对于(i in 1:nrow(values))

我正在尝试使用pyspark中的代码,但结果如下所示

Row(w_vote=0.1)
Row(w_vote=0.2)
Row(w_vote=0.25)
Row(w_vote=0.3)
Row(w_vote=0.31)
Row(w_vote=0.36)
Row(w_vote=0.41)

但是我希望结果为0.1、0.2、0.25等。

1 个答案:

答案 0 :(得分:1)

collect返回一个Row对象,它类似于dict,只是您将元素作为属性而不是键进行访问。

因此,您可以执行以下操作:

result = [row.w_vote for row in values.collect()]

或者这个:

result = [row.asDict()['w_vote'] for row in values.collect()]

作为for循环:

result = []

for row in values.collect():
    result.append(row.w_vote)