使用pyspark 进行向量计算
最近根据Airbnb在KDD 2018的bestpaper《Real-time Personalization using Embeddings for Search Ranking at Airbnb》做实时推荐的项目。其中在表达用户短期兴趣特征时我们是将用户近两周对item的行为数乘以对应item向量并将所有行为向量相加。此处item向量已由word2vec训练好。
数据格式如下:
我们需要将num*vector后按user_id groupby求vector和。
一开始用的方法是将spark.dataframe转换成pandas.dataframe处理(分布式转换方法可以参考另一篇博文:https://blog.csdn.net/htbeker/article/details/93630921)。这样做样本量在千万级可以,但是涉及到两种dataframe之间来回转换很麻烦,而且样本量上去之后我们公司的计算平台就开始error了,后面尝试了使用rdd计算的方法,可以在两种dataframe间切换并支持大量样本的计算,代码也很简洁,如下:
dff = spark.createDataFrame(df.rdd.map(lambda x: (x.user_id,x.num*x.vector))\.reduceByKey(lambda x,y:x+y),schema = ['user_id','vector'])
扫描下方二维码关注领取程序员必备千套ppt模板,300本精选好书,丰富面经:
使用pyspark 进行向量计算相关推荐
- pyspark汇总小结
20220402 Spark报Total size of serialized results of 12189 tasks is bigger than spark.driver.maxResult ...
- spark- PySparkSQL之PySpark解析Json集合数据
PySparkSQL之PySpark解析Json集合数据 数据样本 12341234123412342|asefr-3423|[{"name":"spark", ...
- jupyter笔记本_如何为Jupyter笔记本电脑设置PySpark
jupyter笔记本 by Tirthajyoti Sarkar 由Tirthajyoti Sarkar 如何为Jupyter笔记本电脑设置PySpark (How to set up PySpark ...
- 手把手教你实现PySpark机器学习项目——回归算法
作者 | hecongqing 来源 | AI算法之心(ID:AIHeartForYou) [导读]PySpark作为工业界常用于处理大数据以及分布式计算的工具,特别是在算法建模时起到了非常大的作用. ...
- pyspark常用API
union 和unionall union 纵向合并dataframe In this Spark article, you will learn how to union two or more d ...
- 利用PySpark进行迁移学习的多类图像分类
在本文中,我们将演示计算机视觉问题,它具有结合两种最先进技术的能力:深度学习和Apache Spark.我们将利用深度学习管道的强大功能来解决多类图像分类问题. PySpark 是 Spark 为 P ...
- R语言计算杰卡德相似系数(Jaccard Similarity)实战:自定义函数计算Jaccard相似度、对字符串向量计算Jaccard相似度、将Jaccard相似度转化为Jaccard距离
R语言计算杰卡德相似系数(Jaccard Similarity)实战:自定义函数计算Jaccard相似度.对字符串向量计算Jaccard相似度.将Jaccard相似度转化为Jaccard距离 目录 R ...
- pyspark dataframe数据连接(join)、转化为pandas dataframe、基于多个字段删除冗余数据
pyspark dataframe数据连接(join).转化为pandas dataframe.基于多个字段删除冗余数据 目录 pyspark dataframe数据连接(join).转化为panda ...
- 基于关联规则(Variational Autoencoders)疾病预测系统实战:(pyspark FPGrowth实现频繁项集挖掘、最后给出预测模型topK准确率和召回率)
基于关联规则(Variational Autoencoders)疾病预测系统实战:(pyspark FPGrowth实现频繁项集挖掘.最后给出预测模型topK准确率和召回率) 目录
最新文章
- pandas使用pd.concat纵向合并多个dataframe实战:纵向合并(ignore_index参数)、为纵向合并的多个dataframe设置标识符指定数据来源(通过字典方式设置数据来源键)
- 电脑图片不显示缩略图怎么办
- 40 自动化运维工具Ansible
- Python列表解析式总结
- 三个监控linux网卡流量脚本
- Microsoft Active Directory(LDAP)连接常见错误代码
- cuda10安装_Mmdetection的安装和使用
- JAVA 疯狂讲义 学习笔记
- HTML注释和js注释,js 注释
- “大圆满”之前行--从概念到知识再到计算的共生【原力】_目录规划与提要
- 简单整理一下以英文字母命名或者开头的语言
- 射灯安装方法图解_射灯如何安装—射灯的安装方法介绍
- 企业安全风险的来源有哪些?
- 百分比计算机公式,百分比的计算公式怎么算的(免费教你计算百分比)
- 如何实现windows命令提示符的tab补全
- 【网络协议趣谈】网络分层的含义
- 期末复习操作系统---设备管理
- 掺镱光纤激光器 RP Fiber Power
- 锐浪报表使用技巧Gird++ 子报表
- notepad++中文简体下载