Apache spark 填充Pyspark中另一行中缺少的值
我有pyspark数据框,我需要根据代码列填写我的ID 如何用其他行中的匹配值替换NaN?Apache spark 填充Pyspark中另一行中缺少的值,apache-spark,pyspark,apache-spark-sql,pyspark-dataframes,Apache Spark,Pyspark,Apache Spark Sql,Pyspark Dataframes,我有pyspark数据框,我需要根据代码列填写我的ID 如何用其他行中的匹配值替换NaN? 我们可以使用coalesce吗?下面是如何做到的。请注意,由于原始数据帧没有定义顺序,所以不会保留顺序 import pyspark.sql.functions as F from pyspark.sql.window import Window df2 = df.withColumn('ID', F.first('ID', True).over(Window.partitionBy('Code'))
我们可以使用coalesce吗?下面是如何做到的。请注意,由于原始数据帧没有定义顺序,所以不会保留顺序
import pyspark.sql.functions as F
from pyspark.sql.window import Window
df2 = df.withColumn('ID', F.first('ID', True).over(Window.partitionBy('Code')))
df2.show()
+---+----+
| ID|Code|
+---+----+
| 7| AZ|
| 7| AZ|
| 3| EV|
| 3| EV|
| 8| FW|
| 5| CX|
| 5| CX|
| 5| CX|
| 9| BY|
| 2| GU|
| 1| DW|
+---+----+
如果要保持原始顺序,可以执行分配索引的另一个步骤:
df2 = df.withColumn('index', F.monotonically_increasing_id()).withColumn('ID', F.first('ID', True).over(Window.partitionBy('Code'))).orderBy('index').drop('index')
df2.show()
+---+----+
| ID|Code|
+---+----+
| 7| AZ|
| 5| CX|
| 9| BY|
| 5| CX|
| 5| CX|
| 1| DW|
| 7| AZ|
| 3| EV|
| 8| FW|
| 3| EV|
| 2| GU|
+---+----+
请使您的数据框可读