欢迎来到魔据教育大数据学院,专注大数据工程师培养!
当前位置:赛车彩票 > 学习资料 > 讲师博文 > 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-05-22
  • 2018国际产学研用合作会议在南昌举行 2019-05-22
  • QFII政策调整引增量资金入场 “成长+大消费”或成布局重点 2019-05-12
  • 广东金林村:农民爱写诗 2019-05-11
  • 二哈冲进轻轨“调戏”乘客 工作人员急追 2019-05-11
  • 南方电网首座500千伏智能变电站投运 2019-04-28
  • 为什么说一直辛苦劳作的农民没有富起来?而不说一直勤劳的农民没有富起来? 2019-04-28
  • 东博会16个国家企业参展 国际展区人气旺 2019-04-12
  • 走路开车看手机是把生命当儿戏(社会观察) 2019-04-05
  • 广西壮族自治区东兰县“七民一站一阵地工作法”维护群众权益 2019-04-05
  • 这是全国精气最为集中的地方 被称为中国丹田所在 ——凤凰网房产 2019-04-04
  • [大笑]大家都不玩了,咱就不相信光靠房地产商和金融资本两方能把房价通过左手倒右手右手倒左手炒上天! 2019-03-25
  • 世界杯开幕式小旗手来自中国贵州丹寨--旅游频道 2019-03-25
  • 把过去私有制基础上的“阶级分析”生搬硬套到现代公有制和私有制并存的无阶级社会,是张冠李戴、睁着眼睛说瞎话。 2019-03-19
  • 致敬!他们是不为人知的城市猎鹰 2019-03-08
  • 112| 224| 217| 839| 645| 317| 949| 430| 32| 337|