在 Spark 2.4 中,Spark JDBC 不允许将 Build in 函数指定为 partitionColumn 吗?



我正在尝试将 Spark 版本 2.2.1 更改为 2.4.0在火花 2.2 中,跟随工作正常。

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

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

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

我确定校验和已定义。

他们在引入"传递直接SQL查询"功能时将其删除。中断性变更是在 2.4.0 中引入的。这更像是一种黑客攻击,现在没有办法实现这一目标。你仍然可以在 2.3 tho 中得到它

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

相关内容

  • 没有找到相关文章

最新更新