从 scala Spark 中的 RDD[type] 获取不同的行
Posted
技术标签:
【中文标题】从 scala Spark 中的 RDD[type] 获取不同的行【英文标题】:Get distinct rows from RDD[type] in scala Spark 【发布时间】:2019-03-28 07:09:19 【问题描述】:假设我有这样一个 RDD[employee] 格式的 RDD 和如下示例数据:-
FName,LName,Department,Salary
dubert,tomasz ,paramedic i/c,91080.00,
edwards,tim p,lieutenant,114846.00,
edwards,tim p,lieutenant,234846.00,
edwards,tim p,lieutenant,354846.00,
elkins,eric j,police,104628.00,
estrada,luis f,police officer,96060.00,
ewing,marie a,clerk,53076.00,
ewing,marie a,clerk,13076.00,
ewing,marie a,clerk,63076.00,
finn,sean p,firefighter,87006.00,
fitch,jordan m,law clerk,14.51
fitch,jordan m,law clerk,14.51
预期输出:-
dubert,tomasz ,paramedic i/c,91080.00,
edwards,tim p,lieutenant,354846.00,
elkins,eric j,police,104628.00,
estrada,luis f,police officer,96060.00,
ewing,marie a,clerk,63076.00,
finn,sean p,firefighter,87006.00,
fitch,jordan m,law clerk,14.51
我想要每个基于不同 Fname 的单行
【问题讨论】:
【参考方案1】:我想你想做这样的事情:
df
.groupBy('Fname)
.agg(
first('LName),
first('Department),
first('Salary)
)
【讨论】:
嘿,你不觉得,groupBy 是非常繁重的操作,分组一个批次意味着遍历所有行,即 log(n) 操作。此分组本身需要 1-2 秒。 @Pinnacle group by 是一种广泛的用户操作,在您的情况下是一种预期的解决方案。 是的@AlexandrosBiratsis 我了解,但我只是想知道是否有任何其他方法可以不使用 group by ,因为在我的情况下它会产生开销和处理时间。可能这是唯一的方法。非常感谢您的回复。以上是关于从 scala Spark 中的 RDD[type] 获取不同的行的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spark Scala 中的 Schema RDD [从案例类中创建] 中查找重复项以及相应的重复计数?
从 Scala 上的 Spark RDD 对象构建 RDD LabeledPoint