Apache spark 在sparksql中使用contains进行连接
我有这样一个数据集:Apache spark 在sparksql中使用contains进行连接,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我有这样一个数据集: +---+--------------+ | id| name_and_age| +---+--------------+ | 1| Anu,23 | | 2|Suresh,24 | | 3| Usha,24 | | 4| Nisha,25 | +---+--------------+ 及 我需要加入这两个数据集,所以我使用contains dataset1.join(dataset2,dataset.col("n
+---+--------------+
| id| name_and_age|
+---+--------------+
| 1| Anu,23 |
| 2|Suresh,24 |
| 3| Usha,24 |
| 4| Nisha,25 |
+---+--------------+
及
我需要加入这两个数据集,所以我使用contains
dataset1.join(dataset2,dataset.col("name_and_age").contains(dataset2.col(age)),"inner")
但我没有得到正确的结果
还有其他的方法加入吗?
请考虑在连接条件下不使用其他列。 < P>将“代码>年龄>代码>列到<代码> DATSET1 并使用此列加入。
import org.apache.spark.sql.functions_
导入spark.implicits_
val dataset3=dataset1.withColumn(“age”,split(“name_and_age,”))。getItem(1))
dataset3.join(dataset2,“age”).show()
输出:
+---+---+------------+---+
|年龄| id |姓名|和|年龄| id2|
+---+---+------------+---+
|23 | 1 | Anu,23 | a|
|25 | 4 |尼沙,25 | d|
|24 | 2 |苏雷什,24 | b|
|24 | 2 |苏雷什,24 | c|
|24 | 3 | Usha,24 | b|
|24 | 3 |乌沙,24 | c|
+---+---+------------+---+
dataset1.join(dataset2,dataset.col("name_and_age").contains(dataset2.col(age)),"inner")