在Transform方法内部执行spark-sql



我正在编写一个spark应用程序,需要在map(Transformation方法(中执行spark-sql。在将一个数据集转换为另一个数据集中时,我需要从另一个表中获取更多信息。有可能吗?如果有,如何做到这一点(最好是用Java(我已经尝试在Transformer类中使用sparkSession,但这不起作用。

Spark版本:2.3.2

更新:我有父母和孩子的关系。我已经创建了联接数据集(父数据集和子数据集(,然后在转换此数据集时,我需要从更多的表中获取有关父数据集的信息。所以,要么我加入了多个表(首先是内部查询、联接等(,要么在进行转换时是否有某种查询方法,在阅读了更多关于spark的内容并回答了这个问题后,情况似乎并非如此?

在阅读了一些博客和这里的回复后,我意识到,与其在转换方法中获取信息(这似乎很难或不可能,因为这需要火花会话等(,我首先创建了所有必需的SQL联接(我们在一个SQL查询中创建了4个联接(。起初,我对是否进行多次联接犹豫不决,但这很快就实现了,而且对于更大的数据集来说速度也很快。因此,根据我们的经验,如果需要,我可以分享连接多个表的好处。不幸的是,我不能共享代码,因为这是一种机密。

最新更新