функция замены джокера - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть два набора данных, и я хотел бы объединить таблицы, если элемент столбца содержит элемент другого.Как я могу сделать?

val df = df1.join(df2, 
    df1.col("Complete Name").equalTo(df2.col("Name")))

В

val df = df1.join(df2, 
    df1.col("Complete Name").ifContain(df2.col("Name")))

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Что делать, если вы делаете что-то подобное

{
df1.join(df2, df1.col("Complete Name").ifContain(df2.col("Name")), "left_anti)
.union(df2.join(df1, df1.col("Complete Name").ifContain(df2.col("Name")), "left_anti))
}

Не проверял, хотя.

0 голосов
/ 20 сентября 2018

Как насчет:

Dataset<Row> d1 = datasetFromJsonStrings(listOf("{\n" +
    "  \"key\": \"name\",\n" +
    "  \"origin\": \"left\"\n" +
"}"));

Dataset<Row> d2 = datasetFromJsonStrings(listOf("{\n" +
    "  \"key\": \"complete name\",\n" +
    "  \"origin\": \"right\"\n" +
"}"));

// [name,left,complete name,right]
List<Row> rows = d1.join(d2, d2.col("key").contains(d1.col("key"))).collectAsList();

Примечание: Я сделал это на Java из-за удобства, потому что вся моя кодовая база на Java, а не Scala.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...