使用pyspark中的窗口在两个日期列之间添加差异

j91ykkif  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(377)

我有很多youtube视频 videosExtraInfoDF . 数据集中的每一个都有许多箭头 id_video 在专栏里 trending_date 取决于病毒传播的日期。我想要一个新的列,其中包含这个日期的最小值和最大值之间的差异。 dias viral 是我要创建的新变量 trending_date 哪段视频走红的日期

w = Window().partitionBy("video_id", "trending_date")

WINDOWvideosExtraInfoDF = videosExtraInfoDF.withColumn("minima_fecha", F.min("trending_date").over(w))\
                                    .withColumn("maxima_fecha", F.max("trending_date").over(w))

WINDOWvideosDiasViralDF = WINDOWvideosExtraInfoDF.withColumn("dias_viral", F.datediff("maxima_fecha", "minima_fecha"))\
                                                    .drop("minima_fecha").drop("maxima_fecha")

然后我想消除重复: videosDiasViralDF = WINDOWvideosDiasViralDF.drop_duplicates(subset=['video_id']).cache() 错误:

AnalysisException: 'cannot resolve \'`dias_viral`\' given input columns: [category_id, CA, EEUU, GB];;

还有另一个变量:对于每个国家,ca eeuu gb
有什么线索吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题