Spark Sql join-在特定列上联接时工作,不';当连接到其他柱上时,不工作

Spark Sql join-在特定列上联接时工作,不';当连接到其他柱上时,不工作,join,apache-spark-sql,Join,Apache Spark Sql,我有两个表,sql server中的A和B。这是模式 Table A ( col1 varchar(20) not null, --is an FK to another table (NOT Table B) col2 varchar(20) not null, --is the PK . . . other columns ) Table B ( col1 varchar(20) not null, col2 varchar(20) not null,

我有两个表,sql server中的A和B。这是模式

Table A (
  col1 varchar(20) not null, --is an FK to another table (NOT Table B)
  col2 varchar(20) not null, --is the PK
  .
  .
  .
  other columns
)

Table B (
  col1 varchar(20) not null,
  col2 varchar(20) not null,
  .
  .
  .
  other columns
)
我从两个表中创建数据帧并将它们连接起来

A.join(B, A("col1") === B("col1"))  works fine
A.join(B, A("col2") === B("col2"))  gives no rows
这种行为是一致的。但是,在这两种情况下,执行sql查询都会得到结果

在检查日志时,我发现对于失败案例,在DAGScheduler完成其工作后,ClosureCleaner启动并将事情搞砸。 在成功的案例中,ClosureCleaner此时不起作用

故障案例:

INFO org.apache.spark.scheduler.DAGScheduler-作业0已完成:在TestEventJoins上显示。scala:65,耗时12.504064秒

调试org.apache.spark.util.ClosureCleaner-+++清理闭包(org.apache.spark.sql.execution.SparkPlan$$anonfun$3)+++

成功案例:

INFO org.apache.spark.scheduler.DAGScheduler-作业0已完成:在TestEventJoins上显示。scala:65,耗时13.523901秒

调试org.apache.spark.sql.catalyst.expressions.codegen.GenerateSafeProjection-createexternalrow的代码

这里发生了什么,我怎样才能让这一切顺利进行,有什么帮助吗


恐怕我不能提供一个可证实的例子。我试着用样本表来重现这一点,但没有成功。我不能给你访问上述表格的权限:(


如果有人能帮我理解是什么让ClosureCleaner启动(我已经经历过)在这种特殊情况下,或者关于可能导致这种情况的列/列中数据的任何特定字符的任何提示…

这个问题需要一个最低限度的可验证和完整的示例。没有这一点,我们无法帮助您…恐怕我无法提供一个可验证的示例。我已尝试使用示例表重现此示例,但ldn不行。我不能给你访问上述表格的权限。很遗憾,我投了一票。对不起!这个问题需要一个最低限度的可验证和完整的示例。没有这个,我们无法帮助你…我恐怕无法提供一个可验证的示例。我试图用示例表格复制此示例,但无法。我无法给你访问桌子说。然后我很不幸投了一票。对不起!