Spark 1.X 大数据平台
2016-01-04 10:29
337 查看
RDD执行transformation和执行action的区别是什么?
1、transformation是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD,从RDD生成一个新的RDD
2、action是得到一个值,或者一个结果(直接将RDDcache到内存中)。所有的transformation都是采用的懒策略,就是如果只是将transformation提交是不会执行计算的,计算只有在action被提交的时候才被触发。
说明narrow dependency 和 wide dependency的区别? 从计算和容错两方面说明! 在Spark中,每一个 RDD 是对于数据集在某一状态下的表现形式,而这个状态有可能是从前一状态转换而来的,因此换句话说这一个 RDD 有可能与之前的 RDD(s) 有依赖关系。根据依赖关系的不同,可以将
RDD 分成两种不同的类型: Narrow Dependency 和 Wide Dependency 。
Narrow Dependency 指的是 child RDD 只依赖于 parent RDD(s) 固定数量的partition。
Wide Dependency 指的是 child RDD 的每一个partition都依赖于 parent RDD(s) 所有partition。
它们之间的区别可参看下图:
3. RDD cache默认的StorageLevel级别是什么?
1)RDD的cache()方法其实调用的就是persist方法,缓存策略均为MEMORY_ONLY;
2)可以通过persist方法手工设定StorageLevel来满足工程需要的存储级别;
3)cache或者persist并不是action;
4. Spark目前支持哪几种语言的API?
Scala API/Java API/Python API
5. 下载搜狗实验室用户查询日志精版:http://www.sogou.com/labs/dl/q.html (63M),做以下查询:
1) 用户在00:00:00到12:00:00之间的查询数?
package cn.chinahadoop.scala
import org.apache.spark.{SparkContext, SparkConf}
object SogouA {
def main(args: Array[String]) {
if (args.length == 0) {
System.err.println("Usage: SogouA <file1>")
System.exit(1)
}
val conf = new SparkConf().setAppName("SogouA")
val sc = new SparkContext(conf)
val sgRDD=sc.textFile(args(0))
sgRDD.map(_.split('\t')(0)).filter(x => x >= "00:00:00" && x <= "12:00:00").saveAsTextFile(args(1))
sc.stop()
}
}
客户端运行命令:
./spark-submit
--master spark://SparkMaster:7077
--name chinahadoop
--class cn.chinahadoop.scala.SogouA
/home/chinahadoop.jar
hdfs://SparkMaster:9000/data/SogouQ.reduced
hdfs://SparkMaster:9000/data/a
2) 搜索结果排名第一,但是点击次序排在第二的数据有多少?
package cn.chinahadoop.scala
import org.apache.spark.{SparkContext, SparkConf}
object SogouB {
def main(args: Array[String]) {
if (args.length == 0) {
System.err.println("Usage: SogouB <file1>")
System.exit(1)
}
val conf = new SparkConf().setAppName("SogouB")
val sc = new SparkContext(conf)
val sgRDD=sc.textFile(args(0))
println(sgRDD.map(_.split('\t')).filter(_.length ==5).map(_(3).split(' ')).filter(_(0).toInt ==1).filter(_(1).toInt ==2).count)
sc.stop()
}
}
客户端运行命令:与上雷同
3)一个session内查询次数最多的用户的session与相应的查询次数?
package cn.chinahadoop.scala
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.SparkContext._
object SogouC {
def main(args: Array[String]) {
if (args.length == 0) {
System.err.println("Usage: SogouC <file1>")
System.exit(1)
}
val conf = new SparkConf().setAppName("SogouC")
val sc = new SparkContext(conf)
val sgRDD=sc.textFile(args(0))
sgRDD.map(_.split('\t')).filter(_.length ==5).map(x=>(x(1),1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).take(10).foreach(println)
sc.stop()
}
}
客户端运行命令:与上雷同
1、transformation是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD,从RDD生成一个新的RDD
2、action是得到一个值,或者一个结果(直接将RDDcache到内存中)。所有的transformation都是采用的懒策略,就是如果只是将transformation提交是不会执行计算的,计算只有在action被提交的时候才被触发。
说明narrow dependency 和 wide dependency的区别? 从计算和容错两方面说明! 在Spark中,每一个 RDD 是对于数据集在某一状态下的表现形式,而这个状态有可能是从前一状态转换而来的,因此换句话说这一个 RDD 有可能与之前的 RDD(s) 有依赖关系。根据依赖关系的不同,可以将
RDD 分成两种不同的类型: Narrow Dependency 和 Wide Dependency 。
Narrow Dependency 指的是 child RDD 只依赖于 parent RDD(s) 固定数量的partition。
Wide Dependency 指的是 child RDD 的每一个partition都依赖于 parent RDD(s) 所有partition。
它们之间的区别可参看下图:
<img src="http://img.blog.csdn.net/20150608143649809" alt="这里写图片描述" title="" style="color: rgb(54, 46, 43); font-family: 'microsoft yahei'; line-height: 26px; background-color: rgb(255, 255, 255); border: none; box-sizing: border-box; max-width: 100%;" /><span style="color: rgb(54, 46, 43); font-family: 'microsoft yahei'; line-height: 26px; background-color: rgb(255, 255, 255);"> </span>
3. RDD cache默认的StorageLevel级别是什么?
1)RDD的cache()方法其实调用的就是persist方法,缓存策略均为MEMORY_ONLY;
2)可以通过persist方法手工设定StorageLevel来满足工程需要的存储级别;
3)cache或者persist并不是action;
4. Spark目前支持哪几种语言的API?
Scala API/Java API/Python API
5. 下载搜狗实验室用户查询日志精版:http://www.sogou.com/labs/dl/q.html (63M),做以下查询:
1) 用户在00:00:00到12:00:00之间的查询数?
package cn.chinahadoop.scala
import org.apache.spark.{SparkContext, SparkConf}
object SogouA {
def main(args: Array[String]) {
if (args.length == 0) {
System.err.println("Usage: SogouA <file1>")
System.exit(1)
}
val conf = new SparkConf().setAppName("SogouA")
val sc = new SparkContext(conf)
val sgRDD=sc.textFile(args(0))
sgRDD.map(_.split('\t')(0)).filter(x => x >= "00:00:00" && x <= "12:00:00").saveAsTextFile(args(1))
sc.stop()
}
}
客户端运行命令:
./spark-submit
--master spark://SparkMaster:7077
--name chinahadoop
--class cn.chinahadoop.scala.SogouA
/home/chinahadoop.jar
hdfs://SparkMaster:9000/data/SogouQ.reduced
hdfs://SparkMaster:9000/data/a
2) 搜索结果排名第一,但是点击次序排在第二的数据有多少?
package cn.chinahadoop.scala
import org.apache.spark.{SparkContext, SparkConf}
object SogouB {
def main(args: Array[String]) {
if (args.length == 0) {
System.err.println("Usage: SogouB <file1>")
System.exit(1)
}
val conf = new SparkConf().setAppName("SogouB")
val sc = new SparkContext(conf)
val sgRDD=sc.textFile(args(0))
println(sgRDD.map(_.split('\t')).filter(_.length ==5).map(_(3).split(' ')).filter(_(0).toInt ==1).filter(_(1).toInt ==2).count)
sc.stop()
}
}
客户端运行命令:与上雷同
3)一个session内查询次数最多的用户的session与相应的查询次数?
package cn.chinahadoop.scala
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.SparkContext._
object SogouC {
def main(args: Array[String]) {
if (args.length == 0) {
System.err.println("Usage: SogouC <file1>")
System.exit(1)
}
val conf = new SparkConf().setAppName("SogouC")
val sc = new SparkContext(conf)
val sgRDD=sc.textFile(args(0))
sgRDD.map(_.split('\t')).filter(_.length ==5).map(x=>(x(1),1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).take(10).foreach(println)
sc.stop()
}
}
客户端运行命令:与上雷同
相关文章推荐
- Saiku去掉登录模块
- 大数据学习之Scala的环境搭建和Hello World程序的实现(1)
- Facebook人工智能负责人Yann LeCun谈深度学习的局限性
- QDU65 again and again(字典序暴力or字典树)
- 151219DuoTaiDemo
- 趣说游戏AI开发:对状态机的褒扬和批判
- 大数据系列第三课:scala中阶
- [Android Pro] 网络流量安全测试工具Nogotofail
- VT-x is not available (VERR_VMX_NO_VMX) 的解决方案
- OC对象的retainCount(引用计数器)
- 专访CMU邢波教授:机器学习与医疗大数据,及大规模机器学习系统的开发
- 2016年最值得关注的大数据领域33大预测
- 2016年最值得关注的大数据领域33大预测
- VMfailVaild 错误号
- 【science封面文章】Human-level concept learning through probabilistic program induction
- 大数据系列第三课:scala基础
- LeetCode之Climbing Stairs与斐波那契数列的联想
- HDFS基本命令
- KMP字符串模式匹配详解http://blog.csdn.net/lin_bei/article/details/1252686
- 被颠覆的购物者:穿越喧嚣的零售业