欢迎来到魔据教育大数据学院,专注大数据工程师培养!
当前位置:赛车彩票 > 学习资料 > 讲师博文 > Spark javardd入门

环岛赛彩票开奖视频: Spark javardd入门

时间:2017-08-17 17:55:48作者:[!--zuozhe--]

赛车彩票 www.d6sa.cn 9-1.png

 

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。SPARK不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
 
Spark 是在 Scala 语言中实现的,但提供scala、java、python、hivesql等语音开发接口。并且Spark 提供了大量的库,包括SQL、DataFrames、MLlib、GraphX、Spark Streaming。
 
Spark建立在统一抽象的RDD(Resilient Distributed Datasets)之上。RDD是弹性分布式数据集,即分布式的元素集合。在spark中,对所有数据的操作都是创建RDD、转化已有的RDD以及调用RDD操作进行求值。在这一切的背后,Spark会自动将RDD中的数据分发到集群中,并将操作并行化。用java实现的rdd称为javardd,本文主要为大家介绍用java实现的spark程序javardd。
 
使用javardd的好处,对应经常使用java的人员学习成本较低上手spark较快。劣势,没有scala编写简洁。
 
以下是javardd常用的几个方法:
1、map(func):对每行数据使用func,然后返回一个新的RDD,数据处理-每行。
2、filter(func):对每行数据使用func,然后返回func后为true的数据,用于过滤。
3、flatMap(func):和map差不多,但是flatMap生成的是多个结果,用于行转列。
4、groupByKey(numTasks):返回(K,Seq[V]),也就是Hadoop中reduce函数接受的
key-valuelist
5、reduceByKey(func,[numTasks]):就是用一个给定的reduce func再作用在groupByKey产
生的(K,Seq[V]),比如求和,求平均数
6、sortByKey([ascending],[numTasks]):按照key来进行排序,是升序还是降序,ascending
是boolean类型
 
接下来为大家以代码案例的形式介绍每个方法的用法,spark分为转换因子和执行因子,转换因子为对javardd进行数据格式转换。执行因子为确定数据执行方式。Spark为懒惰式,如果没有执行因子程序是不执行的。
 
代码案例-转换因子
 

9-2.png

首先加载数据,加载hdfs数据
JavaRDD<String> baseLines = ctx.textFile(“hdfs:///dx/basic”);
1) Map,用例为数据加上日期标识
JavaRDD<String> filedata = baseLines.map(new Function<String, String>() {
@Override
public String call(String s) {
s = s + “|20170101”;
return s;
}
});
2) Filter,用例提取包含jpg的图片地址
JavaRDD<String> fileclear = baseLines.filter(new Function<String, Boolean>() {
@Override
public Boolean call(String s) {
if (s.indexOf(“.jpg”)>=0) {
return true;
}
return false;
}
});
3) flatMap,行转列
JavaRDD<String> words = baseLines.flatMap(new FlatMapFunction<String, String>() {
@Override
public Iterator<String> call(String s) {
return Arrays.asList(SPACE.split(s)).iterator();
}
});
元数据格式
1 2 3 4 5
转换后格式
1
2
3
4
5
4) groupByKey
将数据进行按key分组
JavaPairRDD<String, String> userpropv = baseLines
.mapToPair(new PairFunction<String, String, String>() {
@Override
public Tuple2<String, String> call(String s) throws Exception {
String[] str = s.split(“,”);
//产品id+用户号码作为key
return new Tuple2<>(str[2], "1");
}
});
 
JavaPairRDD<String, Iterable<String>> dxgroupedPairs = userpropv.groupByKey();

9-3.png

5) reduceByKey
作用于groupByKey产生的value上比如求和求平均值。
JavaPairRDD<String, Integer> counts =
userpropv.reduceByKey(new Function2<Integer, Integer, Integer>() {
@Override
public Integer call(Integer i1, Integer i2) {
    return i1 + i2;
  }
});
6) sortByKey,第二个参数true升序、false降序
JavaRDD< String > resultRDD = baseLines.sortBy(
new Function<String, Object>() {
@Override
public Object call(String v1) throws Exception {
return v1;
}
}, false, 1);
 
代码案例-执行因子
1、saveAsTextFile 数据保存
resultRDD..saveAsTextFile(“/outpath”)
2、collect()小结果集数组转换
   List<String> list = resultRDD. collect();
 
以上是spark javardd常用因子,在一般程序中较为常用的。
 
参考地址://spark.apache.org/docs/latest/api/java/index.html

更多大数据相关资讯敬请关注魔据教育,为您分享最及时的大数据资讯。
学习大数据敬请关注魔据教育微信二维码。
魔据教育微信二维码

【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息发邮件至[email protected],我们将及时沟通与处理。本站内容除非来源注明魔据教育,否则均为网友转载,涉及言论、版权与本站无关。

全国咨询热线:18501996998,值班手机:18501996998(7*24小时)

在线咨询:张老师QQ 320169340

企业合作服务专线:010-82340234-821, 院校合作洽谈专线:010-82340234

Copyright 2001-2019 魔据教育 - 北京华育兴业科技有限公司 版权所有,京ICP备17018991号-2

免费在线咨询赛车彩票

免费索取技术资料立即索取

大数据技术交流QQ:226594285

电话咨询010-82340234

  • 致敬!他们是不为人知的城市猎鹰 2019-03-08
  • 尧都农商银行全力推进服务“三农”工作 2019-03-08
  • 股权质押“利剑”高悬 上市公司急寻脱困之道 2019-02-14
  • 墨西哥地震与球队进球民众跳跃啥关系?专家:无关 2019-02-14
  • 王东峰主持召开河北雄安新区规划建设工作领导小组会议 2018-12-05
  • 买买买!吃吃吃!端午消费火爆,总额超70亿元 2018-12-05
  • 热巴窦骁携手演绎经典神话 2018-09-16
  • 人民日报人民论坛:表达当守正,修辞立其诚 2018-09-16
  • 韩中国文化院相关新闻 2018-09-11
  • 多彩课堂熔铸红色魂——甘祖昌干部学院教学素描 2018-09-11
  • 小朱婷15分横扫韩国晋级四强 教练誓灭泰国一雪前耻 2018-08-22
  • 死人当被告被判偿还5万债务?原判决被中止执行 2018-08-08
  • 建好欧美同学会 助力伟大中国梦 2018-07-18
  • 590| 452| 344| 466| 580| 402| 372| 421| 354| 238|