关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
上个月关门了。
改进这个问题
我是scala和spark的初学者,在任何地方都找不到答案。我有一个带有客户机id的spark df,我想在外部数据库的sql查询中使用这些id。例如: sc.sql("SELECT * FROM TABLE WHERE client_id IN (DF_CLIENT_ID)")
如何将df中的值与sql查询连接起来?
关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
上个月关门了。
改进这个问题
我是scala和spark的初学者,在任何地方都找不到答案。我有一个带有客户机id的spark df,我想在外部数据库的sql查询中使用这些id。例如: sc.sql("SELECT * FROM TABLE WHERE client_id IN (DF_CLIENT_ID)")
如何将df中的值与sql查询连接起来?
1条答案
按热度按时间92dk7w1h1#
方法1
由于您打算使用spark数据框中的数据在外部数据库中运行查询,因此必须将spark数据框中的结果保留在spark之外,因为外部数据库无法直接访问此数据,特别是因为spark通常尝试在内存中操作,并且数据可能会跨多个节点进行分区。
我建议将数据作为临时/表或物化视图持久化到外部数据库,并从那里运行查询。如果sparkDataframe中的数据经常更改,则可以使用您选择的作业/计划程序频繁运行此操作。
方法2
这可能更容易,在spark中做任何事情。
从外部数据库创建第二个Dataframe
合并或执行spark中的任何操作
将结果持久化到您选择的位置(可以返回到外部数据库)