首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark 3.0 JdbcRDD Java -为没有ID列的视图指定lowerBound和upperBound时出现问题

Spark 3.0 JdbcRDD Java -为没有ID列的视图指定lowerBound和upperBound时出现问题
EN

Stack Overflow用户
提问于 2020-09-13 19:04:59
回答 1查看 37关注 0票数 0

我使用的是Spark 3.0,在我的Java程序中,我从Oracle DB中的视图中查询数据。我使用Java API JdbcRDD来查询视图。我遇到的问题是视图不包含任何ID或时间戳列。因此,我无法使用lowerBound和upperBound值构造我的SQL查询。请在下面找到我需要在Spark中运行的示例查询。这里,exp_stg.usr和exp_stg.prtcpnt是向我公开的两个视图。

代码语言:javascript
复制
"SELECT a.participant, 
       a.desc, 
       b.firstname, 
       b.lastname, 
       b.dept, 
       b.telno, 
       b.emailaddr
FROM   usr_stg.prtcpnt a 
       LEFT OUTER JOIN usr_stg.usr b 
                    ON a.participant = b.participant 
WHERE  a.class = 'SpSession' "

我尝试在spark和join中使用临时表,但查询性能很差,因为每个视图大约有13,000,000行。因此,我尝试在Oracle DB中使用join查询。

EN

回答 1

Stack Overflow用户

发布于 2020-09-13 22:37:54

我能够在查询中使用ROWNUM克服这个约束。使用ROWNUM作为lowerBound和upperBound,我现在可以使用JdbcRDD获取数据。`

代码语言:javascript
复制
SELECT ROWNUM as id, a.participant, 
       a.desc, 
       b.firstname, 
       b.lastname, 
       b.dept, 
       b.telno, 
       b.emailaddr
FROM   usr_stg.prtcpnt a 
       LEFT OUTER JOIN usr_stg.usr b 
                    ON a.participant = b.participant 
WHERE  a.class = 'SpSession' and ?<=ROWNUM and ROWNUM<=?"`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63869990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档