pyspark 正在使用同一列中基于其他列组的另一组值覆盖一组值

amrnrhlw  于 2023-02-03  发布在  Spark
关注(0)|答案(1)|浏览(123)

输入:

Name   GroupId Processed   NewGroupId  NgId
Mike   1          N         9          NULL
Mikes  1          N         9          NULL 
Miken  5          Y         9          5
Mikel  5          Y         9          5

Output:

Name   GroupId Processed   NewGroupId  NgId
Mike   1          N         9          5
Mikes  1          N         9          5
Miken  5          Y         9          5
Mikel  5          Y         9          5

下面的查询在sql server中工作,由于相关子查询,相同的查询在spark sql中不工作。是否有spark sql或pyspark Dataframe 的替代方案。
选择名称、组ID、IsProcessed、ngid、大小写当ngid为空时,则合并((从临时D中选择前1个ngid,其中D. NewGroupId = T. NewGroupId且D. ngid不为空),null)否则ngid以临时T中的ngid结束

ojsjcaue

ojsjcaue1#

在sparksql中与以下人员合作。
spark.sql(“选择LKUP、组ID、已处理状态、新组ID、合并((从测试2 D中选择最大值(D.ngid),其中D.新组ID = T.新组ID且D. ngid不为空),空)作为测试2 T中的ngid”)

相关问题