首页 > 解决方案 > 在 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)

标签: sqlsql-serverapache-sparkpysparkapache-spark-sql

解决方案


你可以用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'))
)

推荐阅读