CountDistinct基于另一个列Pyspark中的条件

达西

我有以下DF示例:

------------------+---------+
|           ticket_id|news_item|
+--------------------+---------+
|13001244822020121...|        1|
|13000386812020121...|        0|
|13000521120201212...|        0|
|13000578320201212...|        0|
|13000667320201212...|        0|
|13001430320201212...|        0|
|13001440320201212...|        0|
|13001497120201212...|        0|
|13001518420201212...|        0|
|13001117120201212...|        1|

我想做的是基于news_item列计算所有ticket_id。因此,例如,如果DF有300行,则所需的输出应为:

 new_column_name     |news_item|
+--------------------+---------+
|200                 |        1|
|100                 |        0|

我正在使用的代码如下:

output = (df
          .groupby('is_lidl_plus','news_item')
          .agg(f.countDistinct('ticket_id').alias('total_tickets'),
            **f.countDistinct(f.when('news_item')==1)).alias('tickets_with_vouchure')**,
               f.round(f.sum('gross_spending'),2).alias('total_amount_spend'),
               f.round(f.avg('gross_spending'),2).alias('average_gross_amount_spend'),
               f.round(f.avg('net_spending'),2).alias('average_amount_spend')))

pyspark的输出是:

TypeError:when()缺少1个必需的位置参数:“ value”

有什么线索吗?

麦克

我认为您是要这样做?您想计算带有news_item = 1的ticket_id的数量吗?

f.countDistinct(
    f.when(
        f.col('news_item')==1,
        f.col('ticket_id')
    )
).alias('tickets_with_vouchure')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于Jackson中另一个字段值的条件字段要求?

基于另一个表PySpark / SQL的datetime列聚合列

编写通用函数以基于熊猫中另一个列的值来计算基于列的特定条件

基于另一个图层中的值进行栅格图层中的条件分析

需要基于另一个表中的另一个列填充一个列

pySpark / Python遍历数据框列,检查条件并填充另一个列

PySpark:当另一个列值满足条件时修改列值

复制,粘贴基于多个条件的选择到VBA中的另一个工作表

基于另一个分组的条件分组

如何基于另一个数组中的条件从关联数组中提取?

基于另一个键的值的条件类型

基于另一个参数的条件where子句

基于另一个工作表中的复选框的Googlesheets条件格式

基于另一个ENV变量的条件集

sql-基于另一个表上的列的条件查询(日期范围)

Pyspark:基于一个列值从另一个数据帧中减去一个数据帧

基于另一个工作表Excel中的数据的条件格式

在另一个查询的计数行中基于WHERE条件

根据另一个表中的条件更新一个表中的列

基于对另一个 IF 语句的响应的 IF 语句条件

基于另一个范围的条件格式

基于具有条件的另一个系列更新系列中的值

从基于另一个数据帧的值在 pyspark 数据帧中创建一列

基于另一个列值有条件地 Rollmean

基于另一个集合中的条件聚合

使用基于另一个数据框中的 2 个窗口日期的值填充新列(在 Pandas 和 PySpark 中)

基于 Google 表格中另一个单元格值的条件格式

在基于另一个 Df 列的条件下删除第一个 Df 列中的行

DF 中的值基于另一个 DF 的值和条件