Pyspark 中的多个 WHEN 条件实现

2023-11-24

我有我的 T-SQL 代码,我已在 Pyspark 中对其进行了转换,但出现了错误

CASE
            WHEN time_on_site.eventaction = 'IN' AND time_on_site.next_action = 'OUT' AND time_on_site.timespent_sec < 72000 THEN 1  --  20 hours 
            WHEN time_on_site.eventaction = 'IN' AND time_on_site.next_action = 'OUT' AND time_on_site.timespent_sec >= 72000 THEN 0
            WHEN time_on_site.eventaction = 'IN' AND time_on_site.next_action = 'IN' AND time_on_site.timespent_sec <= 28800 THEN 2  -- 8 hours
            WHEN time_on_site.eventaction = 'IN' AND time_on_site.next_action = 'IN' AND time_on_site.timespent_sec > 28800 THEN 3
            WHEN time_on_site.type_flag = 'TYPE4' THEN 4
            ELSE NULL
         END AS "type"

下面是我的 Pyspark 脚本,它抛出一个错误

from pyspark.sql.functions import when

TOS=TOS.withColumn('type', F.when( (col('eventaction') == 'IN') & (col('next_action') == 'OUT') & ("timespent_sec < 72000") , 1).
                            when( (col('eventaction') == 'IN') & (col('next_action') == 'OUT') & ("timespent_sec >= 72000") , 0).
                            when( (col('eventaction') == 'IN') & (col('next_action') == 'IN') & ("timespent_sec <= 28800") , 2).
                            when( (col('eventaction') == 'IN') & (col('next_action') == 'IN') & ("timespent_sec > 28800") , 3).
                            when(col('type_flag')=='TYPE4', 4).otherwise('NULL')
                            )

我哪里错了!?


将你的“时间”嵌套在otherwise()。我的牙套可能不完全平衡,所以一定要检查它们,但想法是一样的。

TOS=TOS.withColumn('type', F.when( (col('eventaction') == 'IN') & (col('next_action') == 'OUT') & ("timespent_sec < 72000") , 1).
                            otherwise( when(   (col('eventaction') == 'IN') & (col('next_action') == 'OUT') & ("timespent_sec >= 72000") , 0).
                            otherwise( when(   (col('eventaction') == 'IN') & (col('next_action') == 'IN') & ("timespent_sec <= 28800") , 2).
                            otherwise( when(   (col('eventaction') == 'IN') & (col('next_action') == 'IN') & ("timespent_sec > 28800") , 3).
                            otherwise( when(   col('type_flag')=='TYPE4', 4).otherwise('NULL'))))))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pyspark 中的多个 WHEN 条件实现 的相关文章

  • 按日期顺序排列的 T-SQL 查询组(间隙和孤岛)

    我有一个这样的示例表 CREATE TABLE Aggregate vKey INT dKey INT StartTrip DATETIME EndTrip DATETIME Distance INT 像这样的一些样本数据 INSERT I
  • SQL Server:多行的 SUM() 包括 where 子句

    我有一张如下所示的表 PropertyID Amount Type EndDate 1 100 RENT null 1 50 WATER null 1 60 ELEC null 1 10 OTHER null 2 70 RENT
  • 从函数调用动态 SQL

    我正在编写一个返回表的函数 有两个参数传递给该函数 并构建并执行查询并将其插入到返回的表中 但是我收到这个错误 只能从函数内执行函数和一些扩展存储过程 我不想使用存储过程 因为这是一个简单的实用函数 有谁知道这是否可以做到 我的函数编码如下
  • TSQL 检索当月/当年的所有记录

    我有一个名为 DateFinished 的日期时间字段 我需要能够检索 DateFinished 在当前月份 年份内的所有记录 如果您只有少量行 这将可以获取所有行DateFinished就在今年这个月 SELECT FROM MyTabl
  • T-SQL 跳过获取存储过程

    我在这个网站上似乎运气不太好 但我仍然是个乐观主义者 我会继续努力 我有两个表 期刊和文章类别 使用此查询连接 SELECT Journals JournalId Journals Year Journals Title ArticleCa
  • 查找包含具有指定名称的列的所有表 - MS SQL Server

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 是否可以查询包含以下列的表名 LIKE myName 搜索表 SELECT c name AS ColumnName SCHE
  • 递归 CTE 中的 TSQL GROUP BY

    是否有解决方法可以在循环 CTE 内使用 GROUP BY 或者有解决方法 我需要对 CTE 表的结果集进行分组 并在具有相同 CTE 的另一个循环中使用它 但出现以下错误 不允许使用 GROUP BY HAVING 或聚合函数 递归公用表
  • 将上一行值减去当前行

    我有下表 id value acc no 1 12 1 2 14 1 3 15 1 4 10 2 5 16 2 6 19 1 7 7 3 8 24 2 预期产出 id value acc no result 1 12 1 12 curren
  • 如何在 AWS Glue 中使用 Spark 包?

    我想使用 DatastaxSpark Cassandra 连接器 https mvnrepository com artifact com datastax spark spark cassandra connector 2 12 2 5
  • 如何找到两个数组列之间的共同元素?

    我有两个以逗号分隔的字符串列 sourceAuthors and targetAuthors val df Seq Author1 Author2 Author3 Author2 Author3 Author1 toDF source ta
  • 消息传递功能创建 Sql 查询和数据库视图

    鉴于以下情况 我需要能够获取给定用户参与的所有线程的列表 首先按最新消息排序 仅显示最新消息 每个线程 1 条消息 这是上面的 SQL 查询 SELECT Message MessageId Message CreateDate Messa
  • 在 pyspark 中实现递归算法以查找数据帧中的配对

    我有一个火花数据框 prof student df 列出了时间戳的学生 教授对 每个时间戳有 4 位教授和 4 位学生 每个教授 学生对都有一个 分数 因此每个时间范围有 16 行 对于每个时间范围 我需要找到教授 学生之间的一对一配对 以
  • Jupyter Notebook 上未显示结构化流输出

    我有两个笔记本 第一个笔记本正在使用 tweepy 从 twitter 读取推文并将其写入套接字 其他笔记本正在使用 Spark 结构化流 Python 从该套接字读取推文并将其结果写入控制台 不幸的是我没有在 jupyter 控制台上得到
  • Spark 使用自定义架构读取镶木地板

    我正在尝试使用自定义架构导入镶木地板格式的数据 但它返回 类型错误 option 缺少 1 个必需的位置参数 值 ProductCustomSchema StructType StructField id sku IntegerType T
  • 如何使用 INSTEAD OF 触发器获取插入表中的新记录的标识

    我在表上使用 INSTEAD OF 插入触发器来设置该行上递增的版本号 并将该行复制到第二个历史记录 审核表 这些行插入到两个表中都没有问题 但是 我无法将第一个表中的新身份返回给用户 Schema CREATE TABLE Table1
  • 优化spark sql中分区数据写入S3

    我在每个 Spark 作业运行中从 HDFS 读取大约 700 GB 的数据 我的工作读取这些数据 过滤大约 60 的数据 将其分区如下 val toBePublishedSignals hiveCtx sql some query toB
  • 使用nodes()方法在SQL中展平分层XML

    我有一个存储过程 它采用 XML 文档作为参数 其结构类似于以下内容
  • Spark Mongo 连接器,MongoShardedPartitioner 不起作用

    出于测试目的 我配置了一个 4 节点集群 每个节点都有一个 Spark Worker 和一个 MongoDB Shard 这些是详细信息 四台 Debian 9 服务器 名为 Visa0 Visa 1 Visa 2 Visa 4 个节点上的
  • 动态向表变量添加 50 列

    我想向定义为变量的表添加大约 50 列 这些列的名称来自另一个表 基本上它们只是数字 DEPA KEY 部门键 是否可以使用循环或类似的东西动态添加这些列 表定义为变量 这里我想动态添加 50 列 DECLARE USERS TABLE U
  • pyspark:计算窗口上的不同值

    我刚刚尝试做一个countDistinct越过一个窗口并得到这个错误 AnalysisException 不支持不同的窗口函数 计数 不同颜色 1926 有没有办法在 pyspark 的窗口上进行不同的计数 这是一些示例代码 from py

随机推荐

  • 如何在 Swift 3 中将 __NSMallocBlock__ 转换为其基础类型?

    I had a trick帮助测试UIAlertController在 Swift 2 x 中有效 extension UIAlertController typealias AlertHandler convention block UI
  • 无法编译任何C++程序;错误:未知类型名称“uint8_t”

    编辑2 问题是不是简单的印刷错误 我在下面的日志中犯了一个拼写错误 我已更正该错误 但问题仍然存在 编辑 在尝试下面之后 我错误地使用 gcc 而不是 g 运行了一次 g 以前就存在这个问题 现在也存在 我目前使用的是 MacOS High
  • 如何从从另一个文件夹中加载的程序集中获取类型?

    我使用以下代码 Assembly LoadFile the assembly in another folder var type Type GetType the full name of the type 即使程序集已经在这行代码之前加
  • 如何使用 sed 替换源文件中的版权/许可证标头?

    我需要用 Apache License 2 0 标头替换所有 Java 源文件中的 LGPL 许可证标头 即 Copyright c 2012 Tyler Treat This file is part of Project Foo Pro
  • 直接P2P连接

    这个主题类似于这个线程 我对网络编程主题相当陌生 除了在单个本地计算机上执行基本的 TCP UDP 之外 从未做过任何其他事情 现在我正在开发一个需要 P2P 网络支持的应用程序 更具体地说 我需要应用程序通过互联网进行连接和通信 最好不使
  • 如何使用 Apache POI (Java) 在 Excel 中创建表单控件(单选、复选框、按钮等)?

    我是否可以使用 Java 通过 Apache POI 库为 Excel 生成表单控件 如果这不可能 还有什么替代方案 我真的需要这个来完成我的工作 预先感谢 对于 Excel 2007 或更高版本 由于 Apache POI 在 OpenX
  • 在后台运行 JavaExec 任务,然后在构建完成时终止

    我试图找出如何启动一个 JavaExec 任务来生成 Jetty 服务器而不阻塞后续任务 另外 我需要在构建完成后终止该服务器 知道我该怎么做吗 我知道该线程是 2011 年的 但我仍然偶然发现了这个问题 这是使用 Gradle 2 14
  • 为 SSL 配置 SSRS

    我有一个运行 SSRS 2014 的 SSRS 实例 我想将其配置为通过 SSL 使用 服务器位于http reports mydomain2 com 我从 GoDaddy 购买了域名 www mydomain com 上的多 SSL 证书
  • 使用流填充多维数组

    我是 Java 8 的新手 目前无法完全掌握 Streams 是否可以使用 Stream 函数操作来填充数组 这是我如何使用标准 for 循环执行此操作的示例代码 public static void testForLoop String
  • 这种锁定和管理锁定异常的解决方案有什么问题?

    我的目标是在应用程序中实现线程安全功能和异常处理的约定 我对线程管理 多线程的概念相对较新 我在用 NET 3 5 阅读本文后 我编写了以下辅助方法来包装所有锁定的操作http blogs msdn com b ericlippert ar
  • 获取尚未应用的类的 CSS 属性值

    在 jQuery 中 我可以使用以下方法获取选择器的 CSS 属性值css方法并传递属性名称 例如 myElement css backgroundImage 我的问题是 如何从一个类中获取 css 属性值not尚未应用于any元素 如同
  • 如何找回我的 MySQL 用户名和密码?

    我丢失了 MySQL 用户名和密码 我该如何取回它 停止 MySQL 进程 使用 skip grant tables 选项启动 MySQL 进程 使用 u root 选项启动 MySQL 控制台客户端 列出所有用户 SELECT FROM
  • 使用 System.Text.Json 将 IConfiguration 序列化回 Json

    我将一些 IConfiguration 作为 json 存储在我的 sqlserver 数据库中 这样我就可以将它们绑定到一些已经构造的类以提供动态设置 在某些时候 我可能会在运行时更改新的绑定属性 然后更新数据库 问题是 当我需要时 该类
  • 用于返回多个安全组成员的 PowerShell 脚本

    我需要使用 PowerShell 返回多个安全组的所有成员 很方便地 所有组都以相同的字母开头 我可以使用以下代码返回所有相关安全组的列表 Get ADGroup filter Name like ABC Select Object Nam
  • 使用空数组初始化哈希意外行为[重复]

    这个问题在这里已经有答案了 我想初始化一个Hash与一个空的Array对于每个新键 将某个值推送到该数组 这是我尝试做的 a Hash new gt a 1 lt lt asd gt asd a gt 预期输出为a was 1 gt asd
  • Emacs 远程 shell

    我倾向于在 emacs 中运行 shell 但是当我使用它来 ssh 到另一台计算机时 这会破坏制表符补全 有没有办法来解决这个问题 Try M x cd hostname current path in the shell 这应该设置an
  • 如何将 JWT 令牌与 WCF 和 WIF 一起使用?

    一般注意事项 我们正在使用身份服务器3到目前为止我们对此非常满意 借助 MS 和 Thinktecture OWIN 中间件 我们可以非常轻松地保护 MVC 和 ASP NET Web API 应用程序的安全 我们所服务的客户端仍然有很多
  • 如何修复调用 Thread.sleep() 时未处理的异常的编译错误?

    我是 Java 新手 也是编程新手 我知道直接进入 Java 可能不是最好的主意 并且无论我如何尝试在程序中添加暂停 我都会不断收到错误 我正在做一个简单的计数程序 想要在每个数字之间添加一秒的延迟 这是我到目前为止的代码 import j
  • Android“操作系统”如何检测来电

    我想知道 Android 操作系统如何检测来电 号码 并显示联系人姓名 并为我们提供接听电话的选项 点击 结束通话按钮 时操作系统内部会发生什么 当我对此进行搜索时 我只获得了创建我自己的应用程序的类和方法 请求解释 在 Android 中
  • Pyspark 中的多个 WHEN 条件实现

    我有我的 T SQL 代码 我已在 Pyspark 中对其进行了转换 但出现了错误 CASE WHEN time on site eventaction IN AND time on site next action OUT AND tim