Spark Scala计数功能没有响应

时间:2019-05-07 13:18:01

标签: oracle scala apache-spark

我正在从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()

这没有提供任何结果

我希望这个计数功能能够提供从表中转储的记录的总数。

1 个答案:

答案 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