使用用户定义的函数在 spark 中加入数据集时需要填充其他信息
Posted
技术标签:
【中文标题】使用用户定义的函数在 spark 中加入数据集时需要填充其他信息【英文标题】:Need additional information to be populated while joining datasets in spark using user defined function 【发布时间】:2018-04-23 13:02:52 【问题描述】:我正在尝试使用用户定义函数 (UDF) 在 Spark 中加入数据集,因为加入的逻辑很复杂。例如:
我有以下提到的 bean 的两个数据集“一”和“二”:
class Bean
private String id;
private String name;
我的加入条件是:
If ids are equal
match confidence = 100%
else if names are equal
match confidence = 50%
else
do not join the rows
我可以轻松创建一个用户定义的函数来按此顺序检查列,但是如何为输出连接数据集提供置信度分数?
【问题讨论】:
【参考方案1】:我会做两个连接。
首先在id上,添加一个字段confidence
并将其设置为100
然后加入名称,同时添加字段confidence
,现在将其设置为50
然后对这些数据集进行联合,按 id 分组并保持最高置信度
可能缓存原始数据集,因为它们被使用了两次,方便保存在内存中
这也减少了连接的 udf 需求,有时计算量很大,因为它们本质上是催化剂的黑盒
【讨论】:
这有用吗?否则请发布一些示例数据以上是关于使用用户定义的函数在 spark 中加入数据集时需要填充其他信息的主要内容,如果未能解决你的问题,请参考以下文章