我试图使用JDBCUtils从Spark中截断表postgre_table,但它丢失了以下错误
<console>:71:错误:值truncateTable不是对象的成员org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils
wave trucate_table = JdbcUtils.truncateTable()
我使用以下代码:
import org.apache.spark.sql.execution.datasources.jdbc._
import java.sql.DriverManager
import java.sql.Connection
val connection : Connection = DriverManager.getConnection(postgres_host + postgres_database,postgres_username,postgres_password)
val table_existing = JdbcUtils.tableExists(connection, postgres_host + postgres_database, postgre_table)
JdbcUtils.truncateTable(connection, postgres_host + postgres_database, postgre_table)
我可以删除表但不截断它。我可以在https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala中看到truncateTable方法
请建议一个解决方案以及如何在数据库中使用它。
看起来你的编译时和运行时spark库有不同的版本。请确保运行时版本与spark的编译时版本匹配。似乎该方法仅从2.1版本可用。
可从此版本获得: