使用 pyspark 进行条件聚合

2023-12-01

考虑以下作为数据框

a        b  c   d   e  
africa  123 1   10  121.2
africa  123 1   10  321.98
africa  123 2   12  43.92
africa  124 2   12  43.92
usa     121 1   12  825.32
usa     121 1   12  89.78
usa     123 2   10  32.24
usa     123 5   21  43.92
canada  132 2   13  63.21
canada  132 2   13  89.23
canada  132 3   21  85.32
canada  131 3   10  43.92

现在我想使用数据帧将下面的 case 语句转换为 PYSPARK 中的等效语句。

我们可以直接使用这个 in case 语句,使用 hivecontex/sqlcontest nut 寻找传统的 pyspark nql 查询

select 
case 
    when c <=10 then sum(e)
    when c between 10 and 20 then avg(e)
else 0.00 end 
from table 
group by a,b,c,d

问候 安维什


您可以将 SQL 代码直接翻译为DataFrame原语:

from pyspark.sql.functions import when, sum, avg, col

(df
    .groupBy("a", "b", "c", "d")  # group by a,b,c,d
    .agg(  # select 
        when(col("c") < 10, sum("e"))  #  when c <=10 then sum(e)
            .when(col("c").between(10 ,20), avg("c"))  # when c between 10 and 20 then avg(e)
            .otherwise(0))   # else 0.00
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pyspark 进行条件聚合 的相关文章

随机推荐

  • 如何使 UICollectionView 单元格水平居中?

    我做了一些研究 但我找不到任何关于如何将 UICollectionView 中的单元格水平居中的代码示例 而不是第一个单元格是这样的X00 我希望它是这样的0X0 有什么办法可以做到这一点吗 EDIT 可视化我想要的东西 当 Collect
  • 如何将我的 Swift 代码转换回 2.3

    我下载了 XCode Beta 8 并将所有 swift 代码从 Swift 2 3 转换为 Swift 3 它给我带来了太多问题 并导致我开始了一个我已经工作了大约 4 个月的项目 如何将我的代码从 Swift 3 转换回 Swift 2
  • 方括号在 C 中如何工作?

    我刚刚开始学习 C 我正在尝试了解基础知识 很多教程会告诉你一些事情 让你相信它 而无需任何真正的解释 而且我找不到人类可读的答案 在下面的 include
  • C# 中按特定精度向下舍入

    我怎样才能舍入double由特定的precision 我需要一个函数来获取double并返回最接近该 double 的值 该值是该特定的倍数precision并且低于两倍 例如 如果精度 2 5 9 3 gt 7 5 12 5 gt 12
  • 使用 NameValueCollection 的 WCF 序列化问题

    我正在尝试通过 WCF 序列化 NameValueCollection 我不断收到异常告诉我添加一种又一种类型 添加它们后 我终于得到了 类型 System Object 无法添加到已知类型列表 因为另一个类型 System Collect
  • 为什么 JavaScript 中的函数是对象?

    请向我解释一下为什么函数是 javascript 中的对象 对象是具有属性的结构 属性的值可以是一个函数 我们称这个属性为方法 但我们不能执行一个对象 我们不能这样做 var cat name Murzik age 17 cat 但我们可以
  • Swift 3 - 准备 Segue

    我的故事板中有 3 个场景 我的初始视图控制器是一个导航控制器 然后根视图控制器与 UI ViewController 视图控制器 a 有一个关系 然后我有一个从 ViewController 中的按钮到第三个 ViewController
  • 上传base64图像facebook graph api 如何使用这个脚本

    上传 Base64 图像 Facebook Graph API我想使用附加链接的这个脚本 如何在我的 WordPress 帖子中使用它 我想用它作为 Facebook 封面照片网站 看看我从各种示例中拼凑而成的代码 您可以使用它将纯 bas
  • 使用 Excel VBA 抓取 HTML

    我一直在尝试抓取并解析网站上的一些财务数据 以便我可以使用 VBA 将数据添加到 Excel 电子表格中 我找到了几种可能的解决方案 但我似乎无法让它们适合我的参数 我的问题是我只需要表中的一个变量 平均目标价格 我一直无法弄清楚我做错了什
  • 将 SQLite 数据库中存储的经度和纬度数据导出到文件以便可以通过网站导入到 Google Map API 的最简单方法是什么?

    我创建了一个应用程序 它在 SQLite 数据库中记录一系列经度和纬度值 并将它们显示为 MapActivity 上的彩色轨迹 我现在希望能够以某种方式导出这些数据 最好导出到文件 以便用户可以将这些值上传到显示 Google Map AP
  • php在上传时调整图像大小

    我得到了一个表单 用户可以在其中插入一些数据并上传图像 为了处理图像 我得到了以下代码 define MAX SIZE 10000 errors 0 image FILES fileField name uploadedfile FILES
  • 请求库:cx_Freeze 后缺少 SSL 握手证书文件

    我正在 python 3 3 中构建一个使用 requests 库的应用程序 当我尝试获取带有 SSL 连接的 URL 时 我想使用 verify true 来验证它 当运行我的 python 脚本时 这非常有效 当我冻结相同的脚本时 它会
  • Uploadify + Paperclip + Rails 嵌套关联 before_save

    我需要创建一个模特申请表 模特可以在其中填写并添加图片 我正在使用 Uploadify Paperclip 和 Rails 3 方法来遵循这个示例 https github com websymphony Rails3 Paperclip
  • 当不存在符号信息时,如何使用 GDB 为 x86 程序集设置断点? [复制]

    这个问题在这里已经有答案了 当没有符号信息时 即无法编写时 如何使用 GDB 对 x86 汇编代码设置断点b start 我想立即停止执行 但是写b 0不是很有用 因为这会在地址处停止执行0 但我需要在地址处中断执行x相对于起点 当不存在符
  • 如何在 LongListSelector 中突出显示所选项目

    我想简单地在 LongListSelector 中当前选定的项目周围显示边框 我已经为 LongListSelector 设置了 ItemTemplate 但我不确定如何修改边框 以便只有当前选定的项目包含边框 主页 xaml
  • 清理 PHP/SQL $_POST、$_GET 等...?

    好吧 这个主题是一个温床 我明白这一点 我还了解这种情况取决于您使用的代码 我有三种情况需要解决 我有一个表格 我们需要允许人们使用逗号 波形符等发表评论和声明 但仍然免受攻击 我有人用英语输入这样的日期 10 13 11 mm dd yy
  • 安装 UWP,无需开发者模式和旁加载

    在非商店的win10 UWP中 安装应用程序应打开开发者模式或侧载模式 然而 我公司的安全级别很高 我无法更改目标笔记本的任何设置 具体来说 这些笔记本在更新和安全方面甚至不 适合开发人员 我的工作是使用 UWP 为公司创建一个自动 wif
  • Google Earth Engine 中带有 map() 函数的双循环

    In Google 地球引擎开发人员指南 有一个建议要避免for 循环 他们建议使用map 函数如本例所示 to avoid var clientList for var i 0 i lt 8 i clientList push i 1 p
  • 如果用户禁用了应用程序的推送,是否可以实现无声远程通知?

    在我的设置选项卡中 我有一个特定功能的开关 可以根据 API 响应关闭或打开 在网站上 只有管理员有权打开 关闭 我可以每次在设置点击时进行 user API 调用来检查用户的当前设置 但有几个缺点 例如如果用户已经在设置中 则它不会更新
  • 使用 pyspark 进行条件聚合

    考虑以下作为数据框 a b c d e africa 123 1 10 121 2 africa 123 1 10 321 98 africa 123 2 12 43 92 africa 124 2 12 43 92 usa 121 1 1