使用Spark在PostgreTable中使用JDBCUtils的truncateTable方法时出错

问题描述 投票:0回答:1

我试图使用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方法

请建议一个解决方案以及如何在数据库中使用它。

postgresql scala apache-spark jdbc databricks
1个回答
0
投票

看起来你的编译时和运行时spark库有不同的版本。请确保运行时版本与spark的编译时版本匹配。似乎该方法仅从2.1版本可用。

可从此版本获得:

https://github.com/apache/spark/blob/branch-2.1/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/JdbcUtils.scala

© www.soinside.com 2019 - 2024. All rights reserved.