pyspark - pyspark 数据框中的平均函数
问题描述
我有一个如下所示的数据框
用户提供一个值,我想从高于该特定值的所有行中计算元组中第二个数字的平均值。
示例:假设值为 10。我想获取“值”列中值大于或等于 10 的所有行并计算这些行的平均值。在这种情况下,它将占用前两行,输出如下所示
有人可以帮我吗?
解决方案
另一种选择:可以先过滤数据框,再计算平均值;使用getItem
方法访问value1
结构列中的字段:
import pyspark.sql.functions as f
df.filter(df.value >= 10)
.agg(f.avg(df.tuple.getItem('value1')).alias('Avg'),
f.lit(10).alias('value')
).show()
+------+-----+
| Avg|value|
+------+-----+
|2200.0| 10|
+------+-----+
推荐阅读
- javascript - 尝试在回调函数中呈现 JSX 后抛出语法错误“意外令牌,预期 }”
- java - 创建 ErpConfigContext 引发异常
- ruby - 如何配置 sinatra rack 应用程序以使用 figaro
- json - Springboot Websockets:无法读取 JSON:无法从 START_ARRAY 令牌中反序列化“someclass”实例
- assembly - IAR Embedded Workbench 非法操作码错误
- python - TensorFlow v10 重新制定 sigmoid 交叉熵损失以在给定 sigmoid 的情况下工作?
- postgresql - 在 Spring Boot 2、Hibernate、PostgreSQL 中通过 JDBC 语句执行 DDL 时出错
- sql - 如何查找不同表中的行数
- angular - 使用角度材料以角度在两个表之间交换数据行
- dart - Flutter 将网络 mp3 文件保存到本地目录