首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Spark dataframe列中获取最大值的最佳方法

在Spark dataframe列中获取最大值的最佳方法
EN

Stack Overflow用户
提问于 2015-10-20 06:04:26
回答 11查看 248K关注 0票数 103

我正在尝试找出在Spark dataframe列中获得最大值的最佳方法。

考虑以下示例:

代码语言:javascript
复制
df = spark.createDataFrame([(1., 4.), (2., 5.), (3., 6.)], ["A", "B"])
df.show()

这将创建:

代码语言:javascript
复制
+---+---+
|  A|  B|
+---+---+
|1.0|4.0|
|2.0|5.0|
|3.0|6.0|
+---+---+

我的目标是在A列中找到最大的值(通过检查,这是3.0)。使用PySpark,以下是我能想到的四种方法:

代码语言:javascript
复制
# Method 1: Use describe()
float(df.describe("A").filter("summary = 'max'").select("A").first().asDict()['A'])

# Method 2: Use SQL
df.registerTempTable("df_table")
spark.sql("SELECT MAX(A) as maxval FROM df_table").first().asDict()['maxval']

# Method 3: Use groupby()
df.groupby().max('A').first().asDict()['max(A)']

# Method 4: Convert to RDD
df.select("A").rdd.max()[0]

上面的每一个都给出了正确的答案,但在没有Spark分析工具的情况下,我不知道哪一个是最好的。

关于以上哪种方法在Spark运行时或资源使用方面最有效,或者是否有比上面的方法更直接的方法,有没有来自直觉或经验主义的想法?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33224740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档