Как насчет:
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.