zoukankan      html  css  js  c++  java
  • 假期二

    Spark提供的数据集操作类型有很多种,大致分为:转换操作和行动操作两大类,即对RDD的操作,RDD相关操作较多,这里不做表述。此外各个处理节点之间的通信模型不再像Hadoop只有Shuffle一种模式,用户可以命名、物化,控制中间结果的存储、分区等。下载完Spark后,启动spark shell 然后建在了spark自带的本地测试文件,以及简单的RDD操作和退出spark shell。

    case class Point(var x:Double,var y:Double) extends Drawable{

    def shift(deltaX:Double,deltaY:Double){x+=deltaX;y+=deltaY}
    }
    trait Drawable{
    def draw(){println(this.toString)}
    }
    abstract class Shape(var location:Point){//location是Shape的一个可变字段
    def moveTo(newLocation:Point){ //默认实现,只是修改位置
    location = newLocation
    }
     def zoom(scale:Double)
    }
    class Line(beginPoint:Point,var endPoint:Point) extends
    Shape(beginPoint) with Drawable{
    override def draw(){
    println(s"Line:(${location.x},${location.y})--(${endPoint.x},${endPoint.y})")
    }
    override def moveTo(newLocation:Point){
    endPoint.shift(newLocation.x - location.x,newLocation.y -
    location.y) //直线移动时,先移动另外一个端点
    location = newLocation //移动位置
    }
    override def zoom(scale:Double){
    val midPoint = Point((endPoint.x + location.x)/2,(endPoint.y +
    location.y)/2//求出中点,并按中点进行缩放
    location.x = midPoint.x + scale * (location.x - midPoint.x)
    location.y = midPoint.y + scale * (location.y -midPoint.y)
    endPoint.x = midPoint.x + scale * (endPoint.x - midPoint.x)
    endPoint.y = midPoint.y + scale * (endPoint.y -midPoint.y)
    }}
    class Circle(center:Point,var radius:Double) extends Shape(center)
    with Drawable{
    override def draw(){
    println(s"Circle center:(${location.x},${location.y}),R=$radius")
    }
    override def zoom(scale:Double){
    radius = radius*scale //对圆的缩放只用修改半径
    } }
    object MyDraw{
     def main(args: Array[String]) {
     val p=new Point(10,30)
    p.draw;
    val line1 = new Line(Point(0,0),Point(20,20))
    line1.draw
    line1.moveTo(Point(5,5))
    line1.draw
    line1.zoom(2)
    line1.draw
    val cir= new Circle(Point(10,10),5)
    cir.draw
    cir.moveTo(Point(30,20))
    cir.draw
    cir.zoom(0.5)
    cir.draw
     } }
  • 相关阅读:
    dmesg 时间转换
    [转载]Linux性能测试 ss命令
    [转载]Python高效编程技巧
    [转载]Latency Numbers Every Programmer Should Know
    几道有意思的智力面试题
    单网卡多ip配置
    [转]Office visio 2007 打开后死机,提示关闭
    [转]C++的五种内存存储区
    [转]Linux性能测试 pmap命令
    利用wojilu框架仿一个网站的全过程(Step by Step利用wojilu框架开发网站系列序言)
  • 原文地址:https://www.cnblogs.com/jbwen/p/12254031.html
Copyright © 2011-2022 走看看