Python 如何获取PySpark中列的最后一个值
这个问题很琐碎,但我对PySpark的世界是全新的,即使是简单的任务,我也面临着很多问题 假设我们有一个带有列a的数据帧df 我想创建另一个数据帧,它只包含一个最后一个值为A的列(这里的最后一个值是指列n A底部的真正记录) 我已经试过类似的东西了Python 如何获取PySpark中列的最后一个值,python,pyspark,pyspark-sql,Python,Pyspark,Pyspark Sql,这个问题很琐碎,但我对PySpark的世界是全新的,即使是简单的任务,我也面临着很多问题 假设我们有一个带有列a的数据帧df 我想创建另一个数据帧,它只包含一个最后一个值为A的列(这里的最后一个值是指列n A底部的真正记录) 我已经试过类似的东西了 df[“A”][-1]但我得到了一个错误 请注意,如果可能的话,我想为PySpark和PySpark Sql中的Python代码提供一个解决方案。请仔细订购,因为在PySpark中,默认情况下不会对数据帧进行订购。这意味着df.take(1)可能并不
df[“A”][-1]
但我得到了一个错误
请注意,如果可能的话,我想为PySpark和PySpark Sql中的Python代码提供一个解决方案。请仔细订购,因为在PySpark中,默认情况下不会对数据帧进行订购。这意味着
df.take(1)
可能并不总是返回相同的值
这篇文章对此非常清楚
2种解决方案:
取(1)
即可sort
函数和asc
参数来反转排序好的,谢谢,但一般来说,极限(1)函数怎么样?它是否总是给我第一条记录,或者甚至每次都会产生不同的值?@WorkBench
limit
不会总是给相同的记录,除非您指定一个确定性的order by
我的经验是,大多数时间take(1)
返回相同的值,除非您并行计算。那么它就更随机,取决于你放的并行核的数量。如果您总是想要一个特定的值,则必须在某个点对数据帧进行排序。Spark数据帧不排序。你必须以某种方式定义“最后”的含义。