SparkSQL的dbtable选项的子查询(来自pyspark)返回意外情况

时间:2018-10-10 10:38:29

标签: oracle apache-spark dataframe jdbc pyspark

尝试从Oracle数据库中加载数据来生成Spark DataFrame,我读到可以将查询传递给dataFrameReader的dbtable选项(而不仅仅是表名)。但这不起作用。

使用pyspark,代码类似于:

ads_df = dataFrameReader.format("jdbc").options(url= url,
                                            driver = "oracle.jdbc.OracleDriver",
                                            dbtable = query,
                                            user = "****",
                                            password = "****").load()

Spark DataFrame成功加载,但是获得的数据与我在其他地方执行查询的数据不同。该查询完全相同,但带有括号。

这是因为dbtable用作SELECT语句的源,所以实际发生的事情是SELECT * FROM dbtable。因此,如果dbtable = "SELECT * FROM table",我们将得到SELECT * FROM (SELECT * FROM table)

我是否正确理解dbtable功能?关于为什么我没有得到预期结果的任何想法?

0 个答案:

没有答案