spark如何处理非数值的聚合最大值? [复制]

Posted

技术标签:

【中文标题】spark如何处理非数值的聚合最大值? [复制]【英文标题】:How does spark handle aggregate max for non numeric values? [duplicate] 【发布时间】:2018-11-15 13:10:19 【问题描述】:

我有一个包含以下数据的数据框

DF1

|value|condition|
+-----+---------+
| 1   |   Y     |
| 2   |   Y     |
| 3   |   Y     |
| 3   |   N     |
| 3   |   N     |
+---------------+

我想了解如果我在聚合上有最大值,数据帧的结果会是什么

DF1.groupby(DF1).max(condition) 是否给出字符串的最大计数为 Y,如果是,我如何根据字母顺序获得最大值?

编辑--

这不适用于日期或我希望它专门用于字符串的任何其他数据类型

【问题讨论】:

我希望它专门用于字符串,其中提供的链接是日期@user10465355 【参考方案1】:

试试这个,

scala> val df1 = Seq((1,"Y"),(2,"Y"),(3,"N"),(3,"Z")).toDF("value","condition")
df1: org.apache.spark.sql.DataFrame = [value: int, condition: string]

scala> df1.show
+-----+---------+
|value|condition|
+-----+---------+
|    1|        Y|
|    2|        Y|
|    3|        N|
|    3|        Z|
+-----+---------+


scala> df1.agg(max("condition")).show
+--------------+
|max(condition)|
+--------------+
|             Z|
+--------------+

【讨论】:

所以申请max时会自动给出最高的字母?而不是出现的字母? 是的!这不是你想要的吗? 是的!如果要计算要计算的字母出现次数怎么办? df1.groupBy("condition").agg(count("condition")).show

以上是关于spark如何处理非数值的聚合最大值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 如何处理非聚集索引中的包含列?

Swift之深入解析如何处理非可选的可选项类型

Powershell - 如何处理非时间戳日志文件条目,包括空行

Vue 组件 - 如何处理非反应性数据?

如何处理非规范化数据以传递给平面列表?

C# HttpWebRequest.GetResponse - 如何处理非异常与 webexception 响应的 StatusCode 使用情况?