除了collect()之外,还有什么方法可以从Pyspark中的列中获取最大值吗?

Sam*_*ain 4 apache-spark pyspark

我想从 pyspark 数据框中的日期类型列获取最大值。目前,我正在使用这样的命令:

df.select('col1').distinct().orderBy('col1').collect()[0]['col1']
Run Code Online (Sandbox Code Playgroud)

"col1"是日期时间类型列。它工作正常,但我想避免在这里使用collect(),因为我怀疑我的驱动程序可能会溢出。

任何意见将是有益的。

ern*_*t_k 5

不需要排序,直接选择最大值即可:

res = df.select(max(col('col1')).alias('max_col1')).first().max_col1
Run Code Online (Sandbox Code Playgroud)

或者你可以使用 selectExpr

res = df1.selectExpr('max(diff) as max_col1').first().max_col1
Run Code Online (Sandbox Code Playgroud)