Github user srowen commented on a diff in the pull request: https://github.com/apache/spark/pull/19307#discussion_r140210563 --- Diff: core/src/main/scala/org/apache/spark/SparkContext.scala --- @@ -2826,33 +2826,33 @@ object WritableConverter { // them automatically. However, we still keep the old functions in SparkContext for backward // compatibility and forward to the following functions directly. - implicit def intWritableConverter(): WritableConverter[Int] = - simpleWritableConverter[Int, IntWritable](_.get) + implicit val intWritableConverter: () => WritableConverter[Int] = + () => simpleWritableConverter[Int, IntWritable](_.get) - implicit def longWritableConverter(): WritableConverter[Long] = - simpleWritableConverter[Long, LongWritable](_.get) + implicit val longWritableConverter: () => WritableConverter[Long] = + () => simpleWritableConverter[Long, LongWritable](_.get) - implicit def doubleWritableConverter(): WritableConverter[Double] = - simpleWritableConverter[Double, DoubleWritable](_.get) + implicit val doubleWritableConverter: () => WritableConverter[Double] = + () => simpleWritableConverter[Double, DoubleWritable](_.get) - implicit def floatWritableConverter(): WritableConverter[Float] = - simpleWritableConverter[Float, FloatWritable](_.get) + implicit val floatWritableConverter: () => WritableConverter[Float] = + () => simpleWritableConverter[Float, FloatWritable](_.get) - implicit def booleanWritableConverter(): WritableConverter[Boolean] = - simpleWritableConverter[Boolean, BooleanWritable](_.get) + implicit val booleanWritableConverter: () => WritableConverter[Boolean] = + () => simpleWritableConverter[Boolean, BooleanWritable](_.get) - implicit def bytesWritableConverter(): WritableConverter[Array[Byte]] = { - simpleWritableConverter[Array[Byte], BytesWritable] { bw => + implicit val bytesWritableConverter: () => WritableConverter[Array[Byte]] = { + () => simpleWritableConverter[Array[Byte], BytesWritable] { bw => // getBytes method returns array which is longer then data to be returned Arrays.copyOfRange(bw.getBytes, 0, bw.getLength) } } - implicit def stringWritableConverter(): WritableConverter[String] = - simpleWritableConverter[String, Text](_.toString) + implicit val stringWritableConverter: () => WritableConverter[String] = + () => simpleWritableConverter[String, Text](_.toString) - implicit def writableWritableConverter[T <: Writable](): WritableConverter[T] = - new WritableConverter[T](_.runtimeClass.asInstanceOf[Class[T]], _.asInstanceOf[T]) + implicit def writableWritableConverter[T <: Writable : ClassTag]: () => WritableConverter[T] = --- End diff -- ClassTag was required here, for reasons I don't fully get
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org