【发布时间】:2017-03-20 03:39:04
【问题描述】:
我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接。
我正在执行连接的行看起来像这样,被称为“修订”:
表 A:
8NXDPVAE
表 B:
[4,8]NXD_V%
在 SQL 服务器 (A.revision LIKE B.revision) 上执行连接工作正常,但在 Spark SQL 中执行相同操作时,连接不返回任何行(如果使用内连接)或表 B 的空值(如果使用外连接) .
这是我正在运行的查询:
val joined = spark.sql("SELECT A.revision, B.revision FROM RAWDATA A LEFT JOIN TPTYPE B ON A.revision LIKE B.revision")
计划如下:
== Physical Plan ==
BroadcastNestedLoopJoin BuildLeft, LeftOuter, revision#15 LIKE revision#282, false
:- BroadcastExchange IdentityBroadcastMode
: +- *Project [revision#15]
: +- *Scan JDBCRelation(RAWDATA) [revision#15] PushedFilters: [EqualTo(bulk_id,2016092419270100198)], ReadSchema: struct<revision>
+- *Scan JDBCRelation(TPTYPE) [revision#282] ReadSchema: struct<revision>
是否可以像这样执行 LIKE 加入,或者我要离开了吗?
【问题讨论】:
标签: sql regex apache-spark apache-spark-sql