我的数据框是这样的
------+-------+
|cat_id|counter|
+------+-------+
| 12| 61060|
| 1| 542118|
| 13| 164700|
| 3| 406622|
| 5| 54902|
| 10| 118281|
| 11| 13658|
| 14| 72229|
| 2| 131206|
+------+-------+
获取上述Dataframe的查询是: grouped_data = dataframe.groupBy("cat_id").agg(count("*").alias("counter"))
现在我需要读取不同catu id的值来保存到另一个数据库中。
我能做的就是在我的id上使用for循环
for cat_id in cat_ids_map:
statsCount = grouped_data.select("counter").filter("cat_id = " + cat_id).collect()[0].counter
但是我认为有一种更好的方法可以不用for循环来读取计数器。任何建议都会有帮助!!!
谢谢
1条答案
按热度按时间bksxznpy1#
如果要遍历整个Dataframe,通常使用.foreach函数。
所以你要做:
其中f是您的函数,它可以对Dataframe中的每个元素执行任何操作