谈谈RDD、DataFrame、uedbet的区佩和各己的优势

2016-09-25 08:04  来源:未知  编辑:admin  已有( )人围观
导读原题目:谈谈RDD、DataFrame、uedbet官网的区佩和各己的优势 在spark中,RDD、DataF...

  原题目:谈谈RDD、DataFrame、uedbet官网的区佩和各己的优势

  在spark中,RDD、DataFrame、uedbet官网是最日用的数据典型,本落文给出产笔者在运用的经过中体验到的区佩和各己的优势。

  特点:

  1、RDD、DataFrame、uedbet官网全邑是spark平台下的散布匹式弹性数据集儿子,为处理超父亲型数据供便当;

  2、叁者邑拥有惰性机制,在终止创立、替换,如map方法时,不会即雕刻实行,条要在遇到Action如foreach时,叁者才会末了尾遍历运算,顶点情景下,假设代码外面面拥有创立、替换,条是前面没拥有拥有在Action中运用对应的结实,在实行时会被直接跳度过,如

  val sparkconf=new SparkConf().setMaster("local").setAppName("test").set("spark.port.maxRetries","1000")

  val spark=SparkSession.builder().config(sparkconf).getOrCreate()

  val rdd=spark.sparkContext.parallelize(Seq(("a", 1), ("b", 1), ("a", 1)))

  rdd.map{line=>

  println("运转")

  line._1

  }

  map中的println("运转")并不会运转。

  3、叁者邑会根据spark的内存放情景己触动缓存放运算,此雕刻么即苦数据量很父亲,也不用担心会内存放溢出产。

  4、叁者邑拥有partition的概念,如

  var predata=data.repartition(24).mapPartitions{

  PartLine=> {

  PartLine.map{

  line=>

  println(“替换操干”)

  }

  }

  }

  此雕刻么对每壹个分区终止操干时,就跟在操干数组壹样,不零数数据量比较小,同时却以便宜的将map中的运算结实拿出产到来,假设直接用map,map中对外面面的操干是拥有效的,如

  val rdd=spark.sparkContext.parallelize(Seq(("a", 1), ("b", 1), ("a", 1)))

  var flag=0

  val test=rdd.map{line=>

  println("运转")

  flag+=1

  println(flag)

  line._1

  }

  println(test.count)

  println(flag)

  不运用partition时,对map之外面的操干无法对map之外面的变量形成影响。

  5、叁者拥有好多壹道的函数,如filter,排前言等。

  6、在对DataFrame和uedbet官网终止操干好多操干邑需寻求此雕刻个包终止顶持。

  import spark.implicits._

  //此雕刻边的spark是SparkSession的变量名

  7、DataFrame和uedbet官网均却运用花样婚配获取各个字段的值和典型。

  DataFrame:

  testDF.map{

  case Row(col1:String,col2:Int)=>

  println(col1);println(col2)

  col1

  case _=>

  ""

    阅读此文的人还看了

    uedbet滚球|uedbet体育|uedbet备用网址 网站地图