我正在从oracle db加载一些数据,并且试图对数据进行计数操作,但是没有得到任何结果并最终导致会话超时。 如果我执行了first(),show()之类的其他功能,则会得到结果。
我尝试使用以下类似的选项启动scala shell。
spark2-shell --jars /oracle/12c/product/12.1.0/client/jdbc/lib/ojdbc6.jar --executor-memory 10G --num-executors 10 --driver-memory 2G yarn-client
spark2-shell --jars /oracle/12c/product/12.1.0/client/jdbc/lib/ojdbc6.jar
val df = spark.read
.format("jdbc")
.option("url","jdbc:oracle:thin:@//MY_IP:MY_PORT/MY_SERVICE_NAME")
.option("dbtable","MY_TABLE")
.option("query", "select 'a','6b',count(*) from MY_TABLE_NAME partition
for (to_date('07-MAY-2019','DD-MON-YYYY')) where COL='SOMETHING'")
.option("driver","oracle.jdbc.driver.OracleDriver")
.option("user", "MY_USERNAME")
.option("password", "MYPASSWORD")
.load()
df.count()
这没有提供任何结果
我希望这个计数功能能够提供从表中转储的记录的总数。
答案 0 :(得分:1)
没有public void printReport() {
Showable course;
for(int i = 0; i < courses.size(); i++) {
course = courses.get(i);
course.show();
((Course) course).getInstructor().show();
for(int j = 0; j < students.size(); j++) {
((Course) course).getStudents().get(j);
}
}
}
这样的选项,因此您的代码从外部表中获取所有数据,此外,它从does that using only a single partition中获取所有数据。
The correct option
is dbtable
,并且根据链接的答案,该查询应作为子查询提供:
query