【发布时间】:2017-09-04 07:04:28
【问题描述】:
我在解决以下问题时遇到了问题。
基本上我想找出特定商品(item_code)在哪一天的最大和最小销量。
输入数据帧
item_code, sold_date, price, volume
101, 10-12-2017, 20, 500
101, 11-12-2017, 20, 400
201, 10-12-2017, 50, 200
201, 13-12-2017, 51, 300
预期输出
查找具有销售日期的 max 和 min 卷。我想要这个解决方案,而不使用任何 lambda 操作。
df.groupBy("item_code")agg(min("volume"),max("volume"))
以上将帮助我获得max 和min 的音量,但我希望它们连同各自的日期。
我用 udf 尽力了我的水平,但我无法破解它。任何帮助高度赞赏。
【问题讨论】:
-
请尝试发布文本示例而不是图像。谢谢。
-
谢谢。更新了我的帖子@philantrovert
-
它帮助我。我想要给定 item_code 的最大/最小成交量。 first() 为我的所有结果返回相同的日期。
-
在 groupBy 子句中,分组后它将是日期列表,因此您必须在它们之间使用聚合函数进行选择。您想使用什么聚合函数?以id的另一行为例:101,应该选择什么日期?
-
什么是“连同各自的日期”? .如果添加以下行,输出应该是什么:101、9-12-2017、20、500 和 101、6-12-2017、20、500
标签: scala apache-spark apache-spark-sql