我試圖使用Spark數據源API從Oracle數據庫加載數據。從Oracle加載的Spark SQLContext數據源API
因爲我需要通過查詢來加載數據,我用下面這是我從一些在線的例子放在一起查詢:
Map<String, String> options = new HashMap<>();
options.put("driver", MYSQL_DRIVER);
options.put("user", MYSQL_USERNAME);
options.put("password", MYSQL_PWD);
options.put("url", MYSQL_CONNECTION_URL);
options.put("dbtable", "(select emp_no, emp_id from employees) as employees_data");
options.put("lowerBound", "10001");
options.put("upperBound", "499999");
options.put("numPartitions", "10");
DataFrame jdbcDF = sqlContext.load("jdbc", options);
這得到一個例外:
異常線程「main 「java.sql.SQLSyntaxErrorException:ORA-00933:SQL命令不能正確地結束
我懷疑,我們不能放棄 」爲employees_data「 爲Oracle查詢,所以我做錯了什麼?
您的代碼有一個像MYSQL_DRIVER參考;你真的連接到Oracle數據庫或MySQL數據庫嗎? –
對不起,我忘了更改變量名...變量中的值使用Oracle驅動程序private static final String MYSQL_DRIVER =「oracle.jdbc.OracleDriver」; private static final String MYSQL_USERNAME =「qauser」; private static final String MYSQL_PWD =「qauser」; private static final String MYSQL_CONNECTION_URL =「jdbc:oracle:thin:@ //」; – prakash