问题描述
我的数据框看起来像这样
------+-------+
|cat_id|counter|
+------+-------+
| 12| 61060|
| 1| 542118|
| 13| 164700|
| 3| 406622|
| 5| 54902|
| 10| 118281|
| 11| 13658|
| 14| 72229|
| 2| 131206|
+------+-------+
grouped_data = dataframe.groupBy("cat_id").agg(count("*").alias("counter"))
现在我需要读取不同cat_id的值,以将其保存在另一个数据库中。
我可以通过在id上使用for循环来完成它的方法
for cat_id in cat_ids_map:
statsCount = grouped_data.select("counter").filter("cat_id = " + cat_id).collect()[0].counter
但是我认为可以有一种更好的方式来读取没有for循环的计数器。任何建议都会有所帮助!!!
谢谢
解决方法
如果要遍历整个数据框,通常使用 .foreach 函数。
所以您会这样做:
grouped_data.foreach(lambda x: f(x))
其中 f 是您的函数,它将对数据框中的每个元素执行您想做的任何事情