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如何处理非数值的聚合最大值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Powershell - 如何处理非时间戳日志文件条目,包括空行
C# HttpWebRequest.GetResponse - 如何处理非异常与 webexception 响应的 StatusCode 使用情况?