如何获取 PySpark 中列的最后一个值

How to get last value of a column in PySpark

这个问题很微不足道,但我在 PySpark 的世界里是全新的,即使是简单的任务,我也面临着很多问题。

假设我们有一个带有 A 列的数据框 df。

我想创建另一个只包含最后一个值为 A 的列的数据框(这里的最后一个值是指 A 列底部的真实记录)。

我已经尝试过

df["A"][-1] 但我收到错误。

拜托,如果可能的话,我想为 PySpark 和 Pyspark Sql 中的 Python 代码提供一个解决方案。

请注意您的排序,因为在 pyspark 中,默认情况下不对 DataFrame 进行排序。这意味着 df.take(1) 可能并不总是 return 相同的值。

这个post说的很清楚。 https://issues.apache.org/jira/browse/SPARK-16207

2 个解决方案:

  1. 从列中选择任意随机值 -> take(1) 即可
  2. 您有某种顺序,然后您可以使用 sort 函数和 asc 参数来反转排序。