在dataframe中搜索输入参数并在spark中计算数学值

wlwcrazw  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(324)

我正在尝试创建一个方法,该方法将接受输入参数作为storeid或publicationid,并在customer\u rate列上提供min、max、avg作为输出
数据:

CUSTOMER_RATE|STOREID|PUBLICATIONID
1.0 MSB0045024  AU121879
1.0 MSB0045024  AU121879
1.2 MBR0000616  AU121879
1.0 MBR0000616  AU121879
1.0 MBR0010285  AU121879
1.0 MSB0045024  AU133703
1.0 MSB0023370  AU133703
1.3 MSB0023370  AU133703
1.0 MSB0045024  AU157764
1.0 MSB0023370  AU157764
1.0 MBR0000616  AU157764
1.0 TAR0000018  AU157764

我使用的是spark和scala,如果合理的话,请分享你的建议。
非常感谢

8zzbczxx

8zzbczxx1#

我想,你在找 groupBy..agg.. 如下所示-

def getMinMax(df1: Dataframe,   groupByCol: String) =
df1.groupBy(groupByCol).agg(min("CUSTOMER_RATE").as("CUSTOMER_RATE"), max("CUSTOMER_RATE").as("CUSTOMER_RATE"))

val groupByCol = "PUBLICATIONID"
val minMaxDf=getMinMax(df1, groupByCol)

更改 groupBycol 根据您的要求

相关问题