如何获取 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 个解决方案:
- 从列中选择任意随机值 ->
take(1)
即可
- 您有某种顺序,然后您可以使用
sort
函数和 asc
参数来反转排序。
这个问题很微不足道,但我在 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 个解决方案:
- 从列中选择任意随机值 ->
take(1)
即可 - 您有某种顺序,然后您可以使用
sort
函数和asc
参数来反转排序。