从 pyspark agg 函数到 int

Posted

技术标签:

【中文标题】从 pyspark agg 函数到 int【英文标题】:From pyspark agg function to int 【发布时间】:2018-12-09 04:55:25 【问题描述】:

我正在按 pyspark 上的条件计算行数

df.agg(count(when((col("my_value")==0),True))).show()

它按我的预期工作。那么如何提取表中显示的值以存储到 Python 变量中呢?

【问题讨论】:

参考:***.com/questions/53667451/… 我看到有人提到了collect 函数,但在我的情况下它不起作用:数据框太大,spark 会抛出错误。 【参考方案1】:

如果你只想计算 Trues (ceros),你最好这样做:

from pyspark.sql import functions as F
pythonVariable = df.where(F.col('my_value') == 0).collect[0][0]

如您所见,无需将 ceros 更改为 True 即可对其进行计数。

【讨论】:

以上是关于从 pyspark agg 函数到 int的主要内容,如果未能解决你的问题,请参考以下文章

计算两列之间的不同集,同时使用 agg 函数 Pyspark Spark Session

为啥 PySpark 中的 agg() 一次只能汇总一列? [复制]

PySpark 中是不是有与 Pandas 聚合函数 any() 等效的函数?

PySpark 一次性对分区执行第一个和最后一个函数

如何将 groupBy 和聚合函数应用于 PySpark DataFrame 中的特定窗口?

Pyspark:从 Python 到 Pyspark 实现 lambda 函数和 udf