问题描述
我将DataBricks用作Azure上的服务。我需要通过Python获得一个字段的最大值。我在下面的代码中编写了代码,但我想知道是否还有另一种方法可以在没有循环的情况下获得最大数量。
%python
sqlMaxValue ="""select IFNULL(MAX(Id),0) AS Max_ID
FROM {0}.t_xxxx""".format(gvDB_xxxx)
DF_sqlMaxValue = spark.sql(sqlMaxValue)
MaxAttr = ''
for y in DF_sqlMaxValue.collect():
MaxAttr = y.Max_ID
解决方法
要使用Databricks笔记本中的Python从列中获取最大值:
dataframe.agg({"Column": "max"}).collect()[0]
OR
要获取特定列的数据帧的MAX值,可以使用以下方法确定:
max_value = df.agg({"any-column": "max"}).collect()[0][0]
示例:我有一个球员名单,其中有上次板球世界杯的得分。要从名为“运行”的特定列中获取最大数量
,此代码将仅返回一行和一列,因此该代码可以写为:
MaxAttr = DF_SqlMaxValue.first()[0]
first
返回数据帧的第一行,[0]
获取第一列的值...