尝试从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功能?关于为什么我没有得到预期结果的任何想法?