需要 Pyspark/Pandas 脚本来实现所需的结果 [关闭]
Posted
技术标签:
【中文标题】需要 Pyspark/Pandas 脚本来实现所需的结果 [关闭]【英文标题】:Need Pyspark/Pandas script to achieve required results [closed] 【发布时间】:2021-08-03 12:09:13 【问题描述】:我有一个如下数据集:
我想得到以下结果:
请注意,这里我想按“id_alt_col”分组,选择 end_date=null 的 desc_col 并将其复制到 desc_col 的其余部分以获取所有重复的 id_alt_col 值。 我无法为此创建脚本.. 有人可以帮忙吗。!! 谢谢。
【问题讨论】:
请不要将数据添加为图片 请阅读How to Ask和edit您的问题。实际上,听起来您希望我们为您编写代码,而这不是 *** 的重点。 【参考方案1】:如果id_alt_col
的每个值总是有空值,可以试试:
df['desc_col'] = df['id_alt_col'].map(df.groupby('id_alt_col').apply(lambda x: x.loc[x['end_date'].isna() | (x['end_date'] == 'null') , 'desc_col'].iloc[0]))
【讨论】:
【参考方案2】:在 Pyspark 中,我会做这样的事情:
from pyspark.sql import functions as F, Window as W
df.withColumn(
"desc_col",
F.first("desc_col").over(
W.partitionBy("id_alt_col").orderBy(F.col("end_date").asc_nulls_first())
),
).show()
+------+--------+----------+---------+
|id_col|desc_col|id_alt_col| end_date|
+------+--------+----------+---------+
| 5| desc5| 110| null|
| 6| desc6| 120| null|
| 1| desc1| 100| null|
| 4| desc1| 100| 4/7/2021|
| 3| desc1| 100|6/10/2021|
| 2| desc1| 100| 8/2/2021|
+------+--------+----------+---------+
【讨论】:
以上是关于需要 Pyspark/Pandas 脚本来实现所需的结果 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
开窗函数之累积和,PySpark,Pandas和SQL版实现
PySpark pandas_udfs java.lang.IllegalArgumentException错误
在 PySpark Pandas UDF 中指定用户定义函数的正确方法