如何在python中从sparkDataframe访问特定列?

rpppsulh  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(417)

我的数据框是这样的

------+-------+                                                                
|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循环来读取计数器。任何建议都会有帮助!!!
谢谢

bksxznpy

bksxznpy1#

如果要遍历整个Dataframe,通常使用.foreach函数。
所以你要做:

grouped_data.foreach(lambda x: f(x))

其中f是您的函数,它可以对Dataframe中的每个元素执行任何操作

相关问题