Scala隐式转换

2019-11-12  本文已影响0人  喵星人ZC
package com.soul.implict

import org.apache.spark.rdd.RDD

/**
  * 为RDD添加一个打印数据的增加类
  */

class RichRDD[T](var rdd: RDD[T]) {

  def printInfo(flag: Int): Unit = {
    if (flag == 0) {
      rdd.collect().foreach(println)
    }

  }

}

为RDD添加这个增强类的功能

package com.soul.implict

import org.apache.spark.rdd.RDD

object ImplictAspect {

  implicit def rdd2RichRDD[T](rdd: RDD[T]):RichRDD[T]= new RichRDD[T](rdd)
}

implicit def <已存在的类>2<增强的类>(传进来存在类):返回增强的类 = new 增强的类(传进来存在的类)
 implicit def rddToPairRDDFunctions[K, V](rdd: RDD[(K, V)])
    (implicit kt: ClassTag[K], vt: ClassTag[V], ord: Ordering[K] = null): PairRDDFunctions[K, V] = {
    new PairRDDFunctions(rdd)
  }
image.png
上一篇 下一篇

猜你喜欢

热点阅读