-
并行化scala集合(Parallelize)
//加载数据1~10
val num=sc.parallelize(1 to 10)
//每个数据项乘以2,注意 _*2记为一个函数(fun)
val doublenum = num.map(_*2)
//内存缓存数据
doublenum.cache()
//过滤数据,每个数据项 % 3 为0的数据为结果集;
val threenum = doublenum.filter(_ % 3 == 0)
//释放缓存
threenum.unpersist()
//出发action操作根据前面的步骤构建DAG并执行,以数据的形式返回结果集;
threenum.collect
//返回结果集中的第一个元素
threenum.first
//返回结果集中的前三个元素
threenum.take(3)
//对数据集中的元素个数统计
threenum.count
//查看以上步骤经过的RDD转换过程
threenum.toDebugString
结果:
-
K-V类型数据演示
// 加载数据
val kv1=sc.parallelize(List(("A",1),("B",2),("C",3),("A",4),("B",5)))
//根据数据集中的每个元素的K值对数据排序
kv1.sortByKey().collect
kv1.groupByKey().collect //根据数据集中的每个元素的K值对数据分组
kv1.reduceByKey(_+_).collect
注意:sortByKey 、groupByKey 、reduceByKey之间的结果集的区别;
val kv2=sc.parallelize(List(("A",4),("A",4),("C",3),("A",4),("B",5)))
kv2.distinct.collect // distinct操作去重
kv1.union(kv2).collect //kv1与kv2联合
kv1.join(kv2).collect //kv1与kv2两个数据连接,相当于表的关联
val kv3=sc.parallelize(List(List(1,2),List(3,4)))
kv3.flatMap(x=>x.map(_+1)).collect //注意这里返回的数据集已经不是K-V类型了
-
HDFS文件操作演示
先将clk.tsv和reg.tsv文件上传到hdfs,文件格式如下;
// 定义一个对日期格式化的常量
val format = new java.text.SimpleDateFormat("yyyy-MM-dd")
// scala语法,定义Register类(根据reg.tsv数据格式)
case class Register (d: java.util.Date, uuid: String, cust_id: String, lat: Float,lng: Float)
// scala语法,定义Click类(根据clk.tsv数据格式)
case class Click (d: java.util.Date, uuid: String, landing_page: Int)
// 加载hdfs上的文件reg.tsv并将每行数据转换为Register对象;
val reg = sc.textFile("hdfs://chenx:9000/week2/join/reg.tsv").map(_.split("\t")).map(r => (r(1), Register(format.parse(r(0)), r(1), r(2), r(3).toFloat, r(4).toFloat)))
// 加载hdfs上的文件clk.tsv并将每行数据转换为Click对象;
val clk = sc.textFile("hdfs://chenx:9000/week2/join/clk.tsv").map(_.split("\t")).map(c => (c(1), Click(format.parse(c(0)), c(1), c(2).trim.toInt)))
reg.join(clk).collect
http://www.cnblogs.com/jianyuan/p/4004486.html?utm_source=tuicool&utm_medium=referral
相关推荐
spark 通过java操作的API详细说明,chm格式,可搜索自己想要的API,内部有详细的用法说明
1. 训练要点 (1) 使用socket连接方式获取数据源。 (2) DStream的转换操作。 2. 需求说明 从一台服务器的8888端口上收到一个以换行符为...(1) 启动Spark独立集群模式并启动spark-shell。 spark-shell –master local[2]
阿帕奇火花Spark是用于大数据的快速通用集群计算系统。 它提供了Scala,Java和Python中的高级API,以及优化的引擎,该引擎...交互式Scala外壳开始使用Spark的最简单方法是通过Scala shell: ./bin/spark-shell尝试以下
阿帕奇火花Spark是用于大数据的快速通用集群计算系统。 它提供了Scala,Java,Python和R中的高级API,以及优化的引擎,该引擎支持用于数据...交互式Scala外壳开始使用Spark的最简单方法是通过Scala shell: ./bin/spark
阿帕奇火花 Spark是用于大数据的快速通用集群计算系统。 它提供了Scala,Java,Python和R中的高级API,以及优化的引擎,该引擎支持用于数据分析的通用...开始使用Spark的最简单方法是通过Scala shell: ./bin/spark
阿帕奇火花 Spark是用于大数据的快速通用集群计算系统。 它提供了Scala,Java,Python和R中的高级API,以及优化的引擎,该引擎支持用于数据分析的通用...开始使用Spark的最简单方法是通过Scala shell: ./bin/spark
Java,Hadoop,Kafka,Spark安装说明 1. Oracle Virtualbox(可选) 访问下面的链接,然后选择正确的操作系统版本进行下载: : 安装。 请根据您的操作系统按照说明进行操作。 如果您使用的是Ubuntu,建议您从...
医学序列浏览器 一套用于从大型 med 文件中挖掘序列的工具。 运行说明 ...要在spark-shell 中运行应用程序,请确保将所需的库添加到类路径(或包含在 ADD_JARS 中)。 检查build.sbt以获取依赖项列表。 去
Java,Hadoop,Kafka,Spark安装说明 1. Oracle Virtualbox(可选) 访问下面的链接,然后选择正确的操作系统版本进行下载: : 根据您的操作系统进行安装。 如果您使用的是Ubuntu,建议您从Ubuntu软件中心下载并...