Spark
拾毅者
长期关注机器学习,数据挖掘和人工智能领域。
展开
-
Spark算子篇-combineByKey实战
Spark算子combineByKeycombineByKey属于Key-Value型算子,做的是聚集操作,这种变换不会触发作业的提交,主要有三个参数,分别是:combiner function : 组合器函数,用于将RDD[K,V]中的V转换成一个新的值C1;mergeValue function :合并值函数,将一个C1类型值和一个V类型值合并成一个C2类型,输入参数为(C1,V),输出为新原创 2016-06-09 13:48:32 · 6454 阅读 · 1 评论 -
Spark批量读取Redis数据-Pipeline(Scala)
最近在处理数据时,需要将原始数据与Redis的数据进行join,在读取Redis的过程中,碰到了一些问题,顺便做个笔记,希望对其他同学也有所帮助。实验过程中,当数据量还是十万级别的时候,逐个读取Redis并无压力;但当数据量达到千万级别时,问题就油然而生了,即使是使用Spark的mapPartitions也无法解决。因此,就考虑使用Redis的pipeline了(如果你有更好的方法,还请不吝赐教)。原创 2016-06-26 15:55:13 · 17410 阅读 · 0 评论 -
SparkSQL之更改表结构
本文篇幅较短,内容源于自己在使用SparkSQL时碰到的一个小问题,因为在之后的数据处理过程中多次使用,所以为了加深印象,在此单独成文,以便回顾。场景在使用SparkSQL进行数据处理时,碰到这样一种情况:需要更改DataFrame当中某个字段的类型。简而言之,就是需要更改SparkSQL的表结构。出于学习的目的,做了一个简单的Demo。下面来看看这个实例。Example…… ……首先使用spar原创 2016-07-23 18:04:15 · 7057 阅读 · 0 评论 -
Inverted Index(倒排索引)
传统的正排索引指的是doc->word的映射,然而在实际工作中,仅仅只有正排索引是远远不够的,比如我想知道某个word出现在那些doc当中,就需要遍历所有的doc,这在实时性要求比较严的系统中是不能接受的。因此,就出现了倒排索引(inverted index ),详细内容参见Wikipedia-Inverted index。本文主要讲解的是如何使用Scala编写Spark程序来实现倒排索引。原理目的原创 2016-07-30 22:03:48 · 5001 阅读 · 0 评论