我的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等。
答案 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)