繁体   English   中英

在Spark Window函数中,为什么我们需要在末尾使用drop()

[英]In Spark Window functions, Why we need to use drop() at the end

我是Spark窗口功能的新手。 我正在实施一些示例以了解更多信息。 看下面的例子。 它与withColumn()一起使用drop()。 我也搜索了很多Spark文档,但无法理解它的重要性。

//Get the top record in each subject with the highest fee
val wSpec = Window.partitionBy($"Subject").orderBy($"Fee".desc)
val dfTop = input.withColumn("rn", row_number.over(wSpec)).where($"rn"===1).drop("rn") //Note: 'input' has my data 
dfTop.show()

有人可以解释drop()的重要性吗? 如果我不使用drop()怎么办?

谢谢。

为什么我们需要在末尾使用drop()

我们没有。 我们这样做是为了删除不再携带有用信息的临时对象。

如果我不使用drop()怎么办?

您将再有一个专栏,里面满满的,仅此而已。

drop()用于删除不需要的列,没有多大意义。

您可以通过以下方式自己查看:

//Commenting drop()
val dfTop = input.withColumn("rn", row_number.over(wSpec)).where($"rn"===1) //.drop("rn") //Note: 'input' has my data 
dfTop.show()

dfTop.drop("rn").show()
//"rn" column is gone

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM