我正在优化下面的操作,它在实际数据集(大型数据集)上的执行时间相对较长,.I在下面尝试的两个pyspark数据集1和2上达到dataset-2的"page_category“列
pyspark数据集-1:
page_click | page_category
---------------------------
facebook | Social_network
insta | Social_nework
coursera | educational我正在对其应用create_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_click‘列执行with_column,以得到另一个名为'page_category’的列
final dataset :
id | page_click | Page_category
-------------------------------
1 | facebook |social_network
2 |Coursera |educational但此操作花费的时间太长,超过4-5分钟。有没有其他方法可以加快操作速度?
谢谢
发布于 2020-07-24 14:53:48
实施简单广播加入
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|
+---+----------+--------------+https://stackoverflow.com/questions/63061686
复制相似问题