pyspark:create\u map期间对页面访问进行分类的性能优化

dldeef67  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(282)

我正在优化下面的操作,该操作在实际数据集(大型数据集)上的执行时间相对较长。我在下面的两个pyspark数据集1和2上进行了尝试,以获得数据集2的“page\u category”列
Pypark数据集-1:

page_click | page_category
---------------------------
facebook | Social_network
insta    | Social_nework
coursera | educational

我正在应用create\u map操作的另一个数据集如下所示:

pyspark dataset-2 :

id | page_click
---------------
1  | facebook
2  |Coursera

我正在创建dataset-1的字典并应用
page_map = create_map([lit(x) for x in chain(*dict_dataset_1.items()]) dataset_2.withColumn('page_category', page_map[dataset_2['page_click']]) 然后在dataset-2的“page\u click”列上执行“page\u column”,以得到另一个名为“page\u category”的列

final dataset : 

id | page_click | Page_category
-------------------------------
1  | facebook   |social_network
2  |Coursera    |educational

但是这个操作需要花费太多的时间来完成,超过4-5分钟。有没有别的办法加快行动?
谢谢您

oprakyz7

oprakyz71#

实现一个简单的广播连接

df2.join(broadcast(df1),df2.page_click==df1.page_click,'left').\
    select(df2.id, df2.page_click, df1.page_category).show()

+---+----------+--------------+
| id|page_click| page_category|
+---+----------+--------------+
|  1|  facebook|Social_network|
|  2|  coursera|   educational|
+---+----------+--------------+

相关问题