我正在运行scala版本2.12.1。使用IntelliJ,如何使用spark和run sql命令连接到我的本地postgresql数据库来操作表?我有很多关于版本冲突的问题,那么是否也可以包含依赖项?
答案 0 :(得分:2)
我建议你使用最新的火花,即2.2.0。对于你想要做的事情,你需要spark-core,spark-sql和postgresql jdbc驱动程序依赖。
对于火花使用这两个:
https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.11/2.2.0 https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.11/2.2.0
对于postgresql驱动程序,这个可能会很好:
https://mvnrepository.com/artifact/org.postgresql/postgresql/9.4.1212
Spark可以通过jdbc连接到关系数据库,在spark文档中有一节:https://spark.apache.org/docs/latest/sql-programming-guide.html#jdbc-to-other-databases
来自相同的文档:
// Loading data from a JDBC source
val jdbcDF = spark.read
.format("jdbc")
.option("url", "jdbc:postgresql://host/database")
.option("dbtable", "schema.tablename")
.option("user", "username")
.option("password", "password")
.load()
显然你需要使用指定数据库的url,对于postgresql连接url,请参阅https://jdbc.postgresql.org/documentation/80/connect.html