Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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
Python pyspark“DataFrame”对象没有属性“\u get\u object\u id”_Python_Dataframe_Apache Spark_Pyspark - Fatal编程技术网

Python pyspark“DataFrame”对象没有属性“\u get\u object\u id”

Python pyspark“DataFrame”对象没有属性“\u get\u object\u id”,python,dataframe,apache-spark,pyspark,Python,Dataframe,Apache Spark,Pyspark,我试图运行一些代码,但出现错误: “DataFrame”对象没有属性“\u get\u object\u id” 守则: items = [(1,12),(1,float('Nan')),(1,14),(1,10),(2,22),(2,20),(2,float('Nan')),(3,300), (3,float('Nan'))] sc = spark.sparkContext rdd = sc.parallelize(items) df = rdd.toDF(["id", "

我试图运行一些代码,但出现错误:

“DataFrame”对象没有属性“\u get\u object\u id”

守则:

items = [(1,12),(1,float('Nan')),(1,14),(1,10),(2,22),(2,20),(2,float('Nan')),(3,300),
         (3,float('Nan'))]

sc = spark.sparkContext
rdd = sc.parallelize(items)
df = rdd.toDF(["id", "col1"])

import pyspark.sql.functions as func
means = df.groupby("id").agg(func.mean("col1"))

# The error is thrown at this line
df = df.withColumn("col1", func.when((df["col1"].isNull()), means.where(func.col("id")==df["id"])).otherwise(func.col("col1"))) 

我认为您使用的是Scala API,其中使用了。
在PySpark中,请改用[]。

除非使用联接,否则不能在函数中引用第二个spark数据帧。IIUC,您可以执行以下操作以实现所需的结果

假设这意味着:

意思是表演 +--+-----+ |id | avgcol1| +--+-----+ | 1| 12.0| | 3| 300.0| | 2| 21.0| +--+-----+ 在id列中加入df和means,然后应用when条件

从pyspark.sql.functions导入时 df.joinmeans,on=id\ .withColumn col1, 什么时候 df[col1].isNull, 指[avgcol1] .otherwisedf[col1] \ .选择*df.columns\ 显示 +--+---+ |id | col1| +--+---+ | 1| 12.0| | 1| 12.0| | 1| 14.0| | 1| 10.0| | 3|300.0| | 3|300.0| | 2| 21.0| | 2| 22.0| | 2| 20.0| +--+---+ 但在这种情况下,我实际上建议使用带有:

从pyspark.sql导入窗口 从pyspark.sql.functions导入col,表示 df.withColumn col1, 什么时候 col1.isNull, meancol1.overWindow.partitionByid 1.其他方面 显示 +--+---+ |id | col1| +--+---+ | 1| 12.0| | 1| 10.0| | 1| 12.0| | 1| 14.0| | 3|300.0| | 3|300.0| | 2| 22.0| | 2| 20.0| | 2| 21.0| +--+---+
不能在这样的函数中使用第二个数据帧-请改用联接。