在Spark 2.4中,Spark JDBC是否不允许将内置函数指定为partitionColumn?

时间:2019-03-31 04:43:58

标签: apache-spark apache-spark-sql

我正在尝试将Spark版本2.2.1更改为2.4.0 在Spark 2.2中,“跟随”效果很好。

val query = "(select id, myPartitionColumnString from myTable) query"
val splitColumn = "CHECKSUM(myPartitionColumnString)"
spark.read.jdbc(jdbcUrl, query, splitColumn, lowerBound, upperBound, numPartitions, connectionProperties)

但是在spark 2.4中,它会导致这样的错误

User-defined partition column CHECKSUM(myPartitionColumnString) not found in the JDBC relation: struct<id: int, myPartitionColumnString: string>

我确定CheckSum已定义。

1 个答案:

答案 0 :(得分:2)

他们在引入“传递直接SQL查询”功能期间将其删除。重大更改在2.4.0中引入。这更像是骇客,目前无法实现。您仍然可以在2.3 tho

中获得它

PS:如果有人找到另一种方法来实现相同的行为,请与我联系,我很感兴趣