如何在pyspark中执行T-SQL操作UPDATE... SET...?

r55awzrz  于 4个月前  发布在  Spark
关注(0)|答案(2)|浏览(49)

我有T-SQL查询需要在pyspark中编码。然而,Pyspark并不支持所有的SQL操作,因此你必须相应地构建自己的逻辑。我已经设法转换了许多查询,但我不确定如何在Pyspark中做到这一点。
下面是T-SQL查询:

UPDATE #TERT A SET TARIH=B.DTARIH
FROM KMLK B
WHERE A.NO=B.NO
AND A.TARIH=''
AND B.DURUM=1

字符串
你能帮我在pyspark中生成UPDATE... SET逻辑吗?

ux6nzvsh

ux6nzvsh1#

我想我已经找到了一个解决方案。正如你们大多数人所知道的,在SQL中可以有几种方法来编写相同的逻辑。在这个意义上,我们可以在Pyspark中找到一种以不同方式执行SET操作的方法。“SET”意味着根据过滤器(或Where条件)将一个列的值与另一个列的值进行更改,UPDATE意味着相应地更新相关的表。所以;

## Assuming we have loaded the #TERT table into dataframe, which is tert_df in that case. Then,

tert_df = tert_df.alias("A").join(kmlk_df.alias("B"),(col("A.no") == col("B.no")))\
                            .filter((col("A.durum") != "") & (col("B.durum") == 1))\
                            .withColumn("A.tarih", col("B.dtarih")).select("A.*")

字符串
withColumn()做的工作,我猜。这里是相关的document。希望它的工作。

h4cxqtbf

h4cxqtbf2#

我会建议你,你应该给给予一个你想改变的地方,
update *tablename set name=“Danish”where Address="....”在这里,我们给出了在此更改名称的权限,其中地址是此

相关问题