【发布时间】:2021-08-13 17:44:00
【问题描述】:
我正在尝试将以下 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)
【问题讨论】:
-
我怀疑如果您将上述内容转换为简单的
AND和OR逻辑,您会更轻松。我还建议将left(util,1) in ('A', 'B')更改为util LIKE '[AB]%。这样做并摆脱CASE表达式将意味着您将拥有一个 SARGable 查询。
标签: sql sql-server apache-spark pyspark apache-spark-sql