Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 填充Pyspark中另一行中缺少的值_Apache Spark_Pyspark_Apache Spark Sql_Pyspark Dataframes - Fatal编程技术网

Apache spark 填充Pyspark中另一行中缺少的值

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'))

我有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')))

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|
+---+----+

请使您的数据框可读