2017-06-16 7 views
1

PostgreSQL 9.6からScalaで次のコードを使用しているRDDのSpark 2.1.1にテーブルを読み込もうとしています。Spark JdbcRDDを使用してPostgreSQLテーブルを読み取るときにエラーが発生する

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: Job aborted due to stage failure: Task 0 in stage 1.0 failed 4 times, most recent failure: Lost task 0.3 in stage 1.0 (TID 7, 10.0.0.13, executor 1): org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.

私は、最新のPostgreSQLのJDBCドライバを使用していると私はそれがデータベースagaisnt正しく認証されてチェックしています。

これが起こっているかどうか、または私が試してみることができる何らかのアイデアはありますか? spark documentation

The query must contain two ? placeholders for parameters used to partition the results

lowerBound the minimum value of the first placeholder param; upperBound the maximum value of the second placeholder

から

答えて

2

だからあなたのクエリがより

select * from my_table where ? <= id and id <= ? 
+1

のようになります。 "オフセット?制限MY_TABLEから*を選択します?"私が必要としていたもの、歓声! – ami232

関連する問題