根据pyspark数据框中的其他列的值聚合一列

用户名

我想对pyspark配置单元表进行一些汇总。

我的桌子:

  id   value_tier ($)
  105   5
  117   5
  108   10
  110   12
  105   10
  112   10

我需要获取仅出现在一个“ value_tier”中的ID数量。

value_tier   num
   5          1 -- for 117
   10         2 -- for 108 and 112
   12         1 -- for 110

在此,不计105,因为它出现在两个value_tiers中。

    5 and 10

我的SQL DDL可以工作,但是又长又难看。我想再优雅一点。谢谢

Shu

在DataFrameAPI中使用groupByaggwithcollect_list函数。

df1.show()
#+---+----------+
#| id|value_tier|
#+---+----------+
#|105|         5|
#|117|         5|
#|108|        10|
#|110|        12|
#|105|        10|
#|112|        10|
#+---+----------+

from pyspark.sql.functions import *

df1.groupBy("id").
agg(concat_ws(',',collect_list(col("value_tier"))).alias("value_tier")).\
filter(size(split(col("value_tier"),",")) <=1).\
groupBy("value_tier").\
agg(count(col("id")).alias("num"),concat_ws(",",collect_list(col("id"))).alias("ids")).\
show()
#+----------+---+-------+
#|value_tier|num|    ids|
#+----------+---+-------+
#|         5|  1|    117|
#|        10|  2|112,108|
#|        12|  1|    110|
#+----------+---+-------+

#use collect_set to eliminate duplicates
df1.groupBy("id").
agg(concat_ws(',',collect_set(col("value_tier"))).alias("value_tier")).\
filter(size(split(col("value_tier"),",")) <=1).\
groupBy("value_tier").\
agg(count(col("id")).alias("num"),concat_ws(",",collect_list(col("id"))).alias("ids")).\
show()

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据其他数据框值创建一列

来自分类Dev

根据Pandas数据框中的其他三列更改一列的值

来自分类Dev

根据Pandas数据框中的其他三列更改一列的值

来自分类Dev

PySpark Dataframe根据其他列中的重复值识别一列中的不同值

来自分类Dev

根据pandas数据框中的其他列创建一个聚合列

来自分类Dev

根据其他列的输入在数据框中创建一列

来自分类Dev

根据匹配值从其他数据框中复制列

来自分类Dev

如何根据多列其他列中的值减去一列中的值?

来自分类Dev

根据共享索引将一列添加到其他数据框中的所有列

来自分类Dev

如何从一列中检索与数据框中其他列的最大值对应的值

来自分类Dev

在pandas数据框中添加一列,该列是根据其他列的条件得出的另一列的平均值

来自分类Dev

根据其他列向熊猫数据框添加一列

来自分类Dev

通过两个文件中另一列中的相应值聚合一列中的值

来自分类Dev

根据其他数据框中的列值在熊猫数据框中创建列

来自分类Dev

Pyspark 数据框:计算列中的唯一值,与其他列中的值独立共存

来自分类Dev

根据其他列值生成一列

来自分类Dev

如何根据R中其他列的值过滤一列中的值?

来自分类Dev

根据其他列中的条件对一列中的值求和,并更改值

来自分类Dev

我们可以使用pyspark对spark中的一列进行分组并获取其他列的值列表(没有聚合的原始值)

来自分类Dev

根据数据框中的其他列更改熊猫数据框的列值

来自分类Dev

如何根据同一数据框其他列中的值过滤熊猫数据框中的结果?

来自分类Dev

使用其他列的索引值在pandas数据框中的一列中进行字符串索引

来自分类Dev

根据其他数据类型的另一列设置列的默认值

来自分类Dev

如何根据其他列值对一列中的值进行排序?

来自分类Dev

如何根据其他 4 列的值对一列中的值求和?

来自分类Dev

根据 SQL Server 中的其他列值推断一列的值

来自分类Dev

如何根据另一列中的间隔填充熊猫中其他列的缺失值?

来自分类Dev

根据其他列行中的过滤值,在pandas数据框中创建一个新列

来自分类Dev

根据其他数据框中的列设置数据框中的值

Related 相关文章

  1. 1

    根据其他数据框值创建一列

  2. 2

    根据Pandas数据框中的其他三列更改一列的值

  3. 3

    根据Pandas数据框中的其他三列更改一列的值

  4. 4

    PySpark Dataframe根据其他列中的重复值识别一列中的不同值

  5. 5

    根据pandas数据框中的其他列创建一个聚合列

  6. 6

    根据其他列的输入在数据框中创建一列

  7. 7

    根据匹配值从其他数据框中复制列

  8. 8

    如何根据多列其他列中的值减去一列中的值?

  9. 9

    根据共享索引将一列添加到其他数据框中的所有列

  10. 10

    如何从一列中检索与数据框中其他列的最大值对应的值

  11. 11

    在pandas数据框中添加一列,该列是根据其他列的条件得出的另一列的平均值

  12. 12

    根据其他列向熊猫数据框添加一列

  13. 13

    通过两个文件中另一列中的相应值聚合一列中的值

  14. 14

    根据其他数据框中的列值在熊猫数据框中创建列

  15. 15

    Pyspark 数据框:计算列中的唯一值,与其他列中的值独立共存

  16. 16

    根据其他列值生成一列

  17. 17

    如何根据R中其他列的值过滤一列中的值?

  18. 18

    根据其他列中的条件对一列中的值求和,并更改值

  19. 19

    我们可以使用pyspark对spark中的一列进行分组并获取其他列的值列表(没有聚合的原始值)

  20. 20

    根据数据框中的其他列更改熊猫数据框的列值

  21. 21

    如何根据同一数据框其他列中的值过滤熊猫数据框中的结果?

  22. 22

    使用其他列的索引值在pandas数据框中的一列中进行字符串索引

  23. 23

    根据其他数据类型的另一列设置列的默认值

  24. 24

    如何根据其他列值对一列中的值进行排序?

  25. 25

    如何根据其他 4 列的值对一列中的值求和?

  26. 26

    根据 SQL Server 中的其他列值推断一列的值

  27. 27

    如何根据另一列中的间隔填充熊猫中其他列的缺失值?

  28. 28

    根据其他列行中的过滤值,在pandas数据框中创建一个新列

  29. 29

    根据其他数据框中的列设置数据框中的值

热门标签

归档