在SparkDataFrame中找到每个组的最大行数

在SparkDataFrame中找到每个组的最大行数

我试图使用SparkDataaframes而不是RDDs,因为它们看起来比RDD更高级,并且倾向于产生更易读的代码。

在一个14个节点的Google Dataproc集群中,我有大约600万个名称,它们被两个不同的系统转换为ID:sasb..各Rownameid_said_sb..我的目标是从id_said_sb使每个人id_sa,相应的id_sb是附加在所有名称中最常见的id。id_sa.

让我们用一个例子来说明一下。如果我有下列行:

[Row(name='n1', id_sa='a1', id_sb='b1'),
 Row(name='n2', id_sa='a1', id_sb='b2'),
 Row(name='n3', id_sa='a1', id_sb='b2'),
 Row(name='n4', id_sa='a2', id_sb='b2')]

我的目标是从a1b2..实际上,与a1n1n2n3,分别映射到b1b2b2,所以b2的名称中最频繁的映射。a1..以同样的方式,a2将被映射到b2..假设总有赢家是可以的:不需要断绝关系。

我希望我能用groupBy(df.id_sa)但我不知道下一步该怎么做。我希望有一个聚合,最终生成以下行:

[Row(id_sa=a1, max_id_sb=b2),
 Row(id_sa=a2, max_id_sb=b2)]

但也许我试图使用错误的工具,我应该回到使用RDDs。


FFIVE
浏览 1496回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL