![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark经验
aicodex
有智者,事竟成。
展开
-
Spark中ID发号器实现思路
欢迎转载,转载请注明出处:Spark作为一个分布式处理框架,处理数据非常快。可是我也不知道作者基于什么样的设计哲学,限制了用户对于一些数据的操作。例如你无法改变一个RDD的内容。无法一个split把数据集分割成两份。无法获得RDD的分区信息,无法再map的时候知道自己处于哪个分区。这对于ID分配来说实在是太难办了。甚至想要一个1对1的笛卡尔积都没有。(如果有的话,我们可以计算待分配id数据的个...原创 2018-04-27 15:43:55 · 447 阅读 · 1 评论 -
spark读取保存gbk的hadoop文件
最近工作遇到一个小问题。隔壁部门非要输出gbk格式的hadoop file。虽然这个要求很奇怪,但是仔细搞了搞发现也没有那么容易。翻了翻书,对implicit这个关键字理解的更深入了一些。编写了这么一个小工具类,可以实现sc.gbkTextFile(path)来读取gbk文件。RDD[String].saveAsGBKTextFile(path)来写入gbk文件。import java.io...原创 2018-12-28 15:59:40 · 898 阅读 · 1 评论 -
Spark的对象不可序列化(object not serializable)的一个解决方案
最近在公司开发了一个新项目。这个项目要求人工去编写配置文件,然后根据配置文件配置的函数去处理数据。学到的隐式转换终于排上用场了。假设这些函数就是对比两个Set内容,然后得到这俩Set的相关得分。如下,然后分别实现这些函数即可。object ScoreFunction{ implicit class FunctionGetterFaster(val functionConf:...原创 2019-01-14 16:08:25 · 9437 阅读 · 2 评论 -
Spark数据不平衡(数据倾斜)特定领域的两个解决方案。
背景 最近在做推荐系统,其中要对数据做召回,需要快速为每个待推荐的“用户”召回100个左右的“电影”。此时一个简单的想法就是计算每个“用户”和“电影”的“相关度”,取top100。假设“用户”和“电影”都有标签。例如“科幻”,“动作”。那么在计算top100,可以只计算同key的相关度。 实现的时候很简单,假设你把用户数据读取好了,电影数据也读取好了val user = sc.paral...原创 2019-05-17 17:49:58 · 1996 阅读 · 0 评论