我想创建一个spark对象,它可以读取整个模式,而不是该模式中的一个表。这是因为我想执行一个连接多个表的特定查询(我不想单独读取每个表,并使用spark手动重新创建查询,因为查询既长又复杂)。我希望它能像这样工作:
val Schema_DF = spark.read
.format("jdbc")
.option("url", "jdbc://example.com")
.option("schema", "SCHEMA_NAME")
.option("user", "username")
.option("password", "pass")
.load()
我可以使用不同的方法将我想要的查询作为结果集加载,但这似乎有些冗长,因为我需要将其转换为Dataframe。任何帮助都将不胜感激。
干杯
1条答案
按热度按时间3z6pesqy1#
您不需要将整个模式加载到spark中就可以做到这一点。
您可以使用
query
财产。裁判:https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html
注意:spark会将此查询推送到您的数据库,即您的数据库会处理查询,spark只会获取结果。如果是你的live prod数据库,请小心:)