【发布时间】:2017-11-19 07:16:09
【问题描述】:
我正在尝试将一张表从 PostgreSQL 9.6 读入 RDD 中的 Spark 2.1.1,为此我在 Scala 中有以下代码。
import org.apache.spark.rdd.JdbcRDD
import java.sql.DriverManager
import org.apache.spark.SparkContext
val sc = SparkContext.getOrCreate()
val rdd = new org.apache.spark.rdd.JdbcRDD(
sc,
() => {DriverManager.getConnection(
"jdbc:postgresql://my_host:5432/my_db", "my_user", "my_pass")},
sql = "select * from my_table",
0, 100000, 2)
但是,它返回以下错误:
org.apache.spark.SparkException:作业因阶段失败而中止: 阶段 1.0 中的任务 0 失败 4 次,最近一次失败:丢失任务 0.3 在阶段 1.0 (TID 7, 10.0.0.13, executor 1): org.postgresql.util.PSQLException:列索引超出范围: 1、列数:0。
我正在使用最新的 PostgreSQL JDBC 驱动程序,并且我已检查它是否正确地针对数据库进行身份验证。
任何想法为什么会发生这种情况或我可以尝试的任何替代方法?
【问题讨论】:
标签: postgresql scala apache-spark jdbc rdd