Spark SQL - 按字段分组的更好方法

时间:2017-01-01 17:12:03

标签: scala apache-spark-sql spark-dataframe

例如,如果我有付款数据[DataFrame中30到40列],数据量大约为4百万[虽然不是很大]。但需要在DF上使用groupBy和agg操作进行大量[25到30]不同的计算。

由于我们将使用相同的DF进行不同的计算,因此我们使用cache()

示例DF:

country transactions
IN      1001
IN      1002
UK      1003
UK      1004

目前我正在做的是

df.groupBy("country").agg(countDisinct(transactions)) as txncnt)

我的问题是我可以实现相同的其他方式[可能是在Spark SQL DataFrame中对数据进行分组的更好方法],我们可以执行类似reduceByKey or AggregateByKey [RDD operations]?

的操作吗?

1 个答案:

答案 0 :(得分:0)

因此,如果您正在使用groupBy并对数据执行操作,则可能应该直接使用reduceByKey。然后每个执行者只发送他的计算结果。

尝试创建一个带有组计算的DF,您可以将其用于所有20个计算并缓存它......