当前位置: 首页 > 知识库问答 >
问题:

如何从pyspark数据帧中计算所有列的最小和最大频率?

彭坚壁
2023-03-14

我有一个pyspark数据框,在这里我可以找到每列的最小/最大值和最小/最大值计数。我可以使用:
df选择最小/最大值。选择([min(col(c)).alias(c)代表df.columns中的c])
我希望在同一数据帧中也有最小/最大值的计数。我需要的具体输出:
…|col|n|col|m|
…|xn | xm |。。。最小值(col(coln))
计数(col_n==xn)|计数(col_m==xm)|。。。

共有1个答案

崔琦
2023-03-14

试试这个,

from pyspark.sql.functions import udf,struct,array
from pyspark.sql.window import Window
tst= sqlContext.createDataFrame([(1,7,2,11),(1,3,4,12),(1,5,6,13),(1,7,8,14),(2,9,10,15),(2,11,12,16),(2,13,14,17)],schema=['col1','col2','col3','col4'])
expr=[F.max(coln).alias(coln+'_max') for coln in tst.columns]
tst_mx = tst.select(*expr)
#%%
tst_dict = tst_mx.collect()[0].asDict()
#%%
expr1=( [F.count(F.when(F.col(coln)==tst_dict[coln+'_max'],F.col(coln))).alias(coln+'_max_count') for coln in tst.columns])
#%%
tst_res = tst.select(*(expr+expr1))

在expr中,我刚刚尝试了max函数。您可以将其扩展到其他函数,如min、mean等,甚至可以对函数列表使用列表理解。关于这种缩放,请参考这个答案:pyspark:groupby和aggregate avg,首先在多个列上解释了聚合,也可以执行select语句。

 类似资料:
  • 我有一个pandas数据框,我想在一列上执行min、max、mean、median计算,使用列a、B和C对它们进行分组。然后我想将结果合并到初始数据框。当我计算中位数时,我成功地使用了以下命令: 但当我尝试计算最小值和最大值并将其添加到数据帧时,出现以下错误: 列重叠,但没有指定后缀:索引(['Px/SQM'],dtype='对象') 用于最小值或最大值的代码: 我已经尝试使用后缀,它将工作,但我

  • 本文向大家介绍如何确定R数据帧列中具有最小值和最大值的行?,包括了如何确定R数据帧列中具有最小值和最大值的行?的使用技巧和注意事项,需要的朋友参考一下 在数据分析中,我们经常需要确定最小值和最大值,因为这些值有助于我们理解所考虑的列或变量的限制。可以通过在单个方括号中使用which.max表示最大值,并使用which.min表示最小值来提取行。 示例 请看以下数据帧- 输出结果 确定具有特定列的最

  • 给定一个数组,求从所有可能的子数组中选择的最小元素和次最小元素的最大和。更正式地说,如果我们写出大小为 这个问题是关于GFG的,但我不理解它的解释。 请任何人给出它在O(n)时间复杂度下的解。

  • 问题内容: 我在pyspark中使用sqlContext.sql函数读取了一个数据框。它包含4个数字列,每个客户都有信息(这是键ID)。我需要计算每个客户端的最大值并将此值加入数据框: 在这种情况下,客户端“ six”的最大值为23,而客户端“ ten”的最大值为30。“ null”在新列中自然为null。 请帮助我显示如何执行此操作。 问题答案: 我认为将值组合到列表中而不是找到最大值将是最简单

  • 我正在寻找计算的最小和最大数量的节点和树叶在一个有根的树与高度h和度d。 我猜叶子的最小数量总是1(如果h 我是正确的还是我错过了什么?

  • 我想编写一个具有重分区的大型数据帧,所以我想计算源数据帧的重分区数。 数据帧/default_blocksize的大小 所以请告诉我如何在spark scala中计算数据帧的大小 提前谢谢。