我有以下数据,需要根据关键点进行分组并根据关键点计数以监视指标。我可以使用groupBy并对该组进行计数,但这涉及一些改组。我们可以不洗牌吗?
ID,TempID,PermanantID
----------
xxx, abcd, 12345
xxx, efg, 1345
xxx, ijk, 1534
xxx, lmn, 13455
xxx, null, 12345
xxx, axg, null
yyy, abcd, 12345
yyy, efg, 1345
yyy, ijk, 1534
zzz, lmn, 13455
zzz, abc, null
输出应为
ID Count1 Count2
----------
XXX 5 5
YYY 3 3
ZZZ 2 1
我可以使用groupBy进行计数并计数
dataframe.groupby("ID").agg(col("TempID").as("Count1"),count(col("PermanantID").as("Count2"))
我们可以使用mapPartition做到吗?
答案 0 :(得分:1)
这个问题虽然可以理解,但是有缺陷。
mapPartitions不能直接在数据框上使用,而只能在RDD和数据集上使用。
此外,在调用mapPartitions之前需要进行分区和改组吗?否则,结果将不正确。没有提到保证问题中最初的数据顺序。
因此,我将依靠假定的groupBy方法。认为应用程序不需要改组是一种幻觉,而是我们可以减少改组,这是目标。