PySpark加入计算柱效率

时间:2019-07-12 13:29:00

标签: sql performance join pyspark

尊敬的StackOverflow社区,

我对在PySpark中实现同一查询的几种方法有疑问,我想知道哪种方法在计算上更有效。

例如,我有两个表A和B。表A 身份证名 1个“乔”

表B 姓 1个“ Woodoo”

作为输出,我想要表C 身份证名姓全名 1个“乔”“伍德奥”“乔伍德奥”

有一种直接的方法可以做到: C = A.join(B,on ='id',how ='left')。withColumn('full_name','name'+'surname') 但是,据我所知,此过程实际上执行两个步骤:第一步-合并,其次-创建一个新列'full_name',作为另外两个列的连接。如果我错了,请纠正我。

第二种方法是使用SQL查询: “ FROM A. ,       B。,       A.姓名+ B.姓氏AS全名 从A 左联接B ON A.id = B.id;“

我的问题是,对于大表,什么计算效率更高? 用SQL查询的第二种方式? 有没有一种方法可以在连接过程中以第一种直接方式连接列?这将导致一个类似于SQL查询的一级过程,对吧?

期待您的答复和富有成果的讨论, 谢尔盖

0 个答案:

没有答案