sql - 在 pyspark 中编写 SQL 时面临的问题
问题描述
我正在尝试将以下 SQL 代码转换为 pyspark。有人可以帮帮我吗
UPDATE B
SET col = 'a'
FROM table B
WHERE (case when left(util,1) in ('A', 'B') then count else PROCS end < 1)
这里,util、count、procs 是列名。
在 pyspark 中编码时,我可以像这样创建一个新列“col”:
df1 = df1.withColumn("col", case condition ,a)
解决方案
你可以用when
做相当于update
:
df1 = df1.withColumn(
'col',
F.when(
F.expr("case when left(util,1) in ('A', 'B') then count else PROCS end < 1"),
F.lit('a')
).otherwise(F.col('col'))
)
推荐阅读
- django-rest-framework - Django Rest Framework - 单元测试视图集额外操作
- javascript - object-fit:contain on child 防止父事件触发
- r - 使用 R 提取 Outlook 联系人
- python-3.x - SQLAlchemy 不会自动提交
- python - 如何检查以我的参数开头和结尾的字符串
- reactjs - 如何使用过滤器按钮过滤 React 中的搜索结果?
- vba - VBA 根据父项数量乘以子项数量
- optimization - 大型数据集采样期间的 Rstan 错误
- python-3.x - 如何在特定模式之后或在另一个特定模式之前匹配单词?
- android - 尝试使用 Kotlin 在 Android Studio 中延迟后执行行