如果确切的单词序列与另一个数据帧中的一个数据帧匹配

时间:2019-05-19 16:33:42

标签: scala apache-spark dataframe

我有2个数据帧,其中df1具有列key1,而df2具有列key2。在这里,列key1包含“兵工厂票”,“婴儿勺”的值,列key2包含“宝贝s”,“票”的值

我在下面的解决方案中使用了该解决方案,但没有得到预期的结果:

var filterdf = df1.join(df2, $"key1".contains($"key2"))

filterdf.show

结果:

+--------------------+----------------+
|                key1|key2            |
+--------------------+----------------+
|          baby spoon|          baby s|
|     arsenal tickets|         tickets|
+--------------------+----------------+

预期结果应如下所示,不应包含“婴儿勺”。它应该与确切的单词顺序匹配,且没有多余的文字。

+--------------------+----------------+
|                key1|key2            |
+--------------------+----------------+
|     arsenal tickets|         tickets|
+--------------------+----------------+

我该怎么做才能获得预期的结果?

1 个答案:

答案 0 :(得分:0)

您可以包含Trim()函数,以在传递df2时删除空格,即

var filterdf = df1.join(df2, $"key1".contains(trim($"key2")))

filterdf.show