gpt4 book ai didi

join - 使用非等键的自定义连接

转载 作者:行者123 更新时间:2023-12-02 11:15:43 24 4
gpt4 key购买 nike

我需要实现一个自定义连接策略,该策略将匹配非严格相等的键。为了说明这一点,我们可以考虑一下距离:当键足够近时,应该发生连接(尽管在我的情况下,它比距离度量要复杂一些)

所以我无法通过重写 equals 来实现这一点,因为不存在相等性(并且我需要为其他需求保留真正的相等性测试)。我想我还需要实现一个适当的分区器。

我怎样才能做到这一点?

最佳答案

将 RDD 转换为 DataFrame,然后你可以像这样进行连接:

val newDF = leftDF.join(rightDF, $"col1" < ceilingVal and $"col1" > floorVal)

然后您可以定义可在联接中使用的 UDF。所以如果你有一个像这样的“distanceUDF”:

val distanceUDF = udf[Int, Int, Int]((val1, val2) => val2 - val1)

然后你可以这样做:

val newDF = leftDF.join(rightDF, distanceUDF($"left.colX", $"right.colY") < 10)

关于join - 使用非等键的自定义连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30132533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com