#apache-spark #apache-spark-sql
#apache-искра #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>
Я уверен, что контрольная сумма определена.
Ответ №1:
Они удалили это во время внедрения функции «передать прямой SQL-запрос». Решающее изменение было внесено в версии 2.4.0. Это был скорее взлом, сейчас этого добиться невозможно. Вы все еще можете получить его за 2,3 тыс.
PS: если кто-то найдет другой способ добиться такого же поведения, пожалуйста, свяжитесь со мной, мне очень интересно