[英]Error using Spark JdbcRDD to read PostgreSQL table
我正在嘗試在RDD中將表從PostgreSQL 9.6讀入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次,最近一次失敗:階段1.0中的任務0.3(TID 7、10.0.0.13,執行者1)丟失:org.postgresql。 util.PSQLException:列索引超出范圍:1,列數:0。
我正在使用最新的PostgreSQL JDBC驅動程序,並且已經檢查它是否可以正確驗證數據庫。
為什么會發生這種情況的任何想法,或者我可以嘗試的替代方法?
查詢必須包含兩個
?
用於對結果進行分區的參數的占位符
和
lowerBound
第一個占位符參數的最小值;upperBound
第二個占位符的最大值
所以您的查詢應該更像
select * from my_table where ? <= id and id <= ?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.