Spark:窗口功能是自定义分区器的替代品吗?

时间:2018-05-16 02:21:52

标签: scala apache-spark apache-spark-sql apache-spark-dataset

我真的很担心自定义分区程序(RDD)如何真正应用于最新的spark版本(在Dataframes / Datasets上)。 可以通过SparkSQL的Window函数处理所有自定义分区器吗? 或者我们是否需要在自定义分区时在rdd和dataframes /数据集之间来回切换?

主要是用复杂的密钥对数据进行分区并在其中进行排序。

class CustomePartitioner(partitions: Int) extends Partitioner {
    override def numPartitions: Int = partitions
    override def getPartition(key: Any): Int = {
      val k = key.asInstanceOf[tmpCaseClass]
      k.tmpCaseClass.SomeId.hashCode() % numPartitions
    }
  }

case clase tmpCaseClass {
    ....
  }

  object tmpCaseClass {
    implicit def orderingById[A <: tmpCaseClass] : Ordering[A] = {
       Ordering.by(fk => (fk.SomeId, fk.SomeName))
    }
  }

我没有任何具体的例子,因为我不清楚。 有人可以用一个例子来解释一下,还是指出一个已经回答的主题,这个主题可以解释这个问题?

0 个答案:

没有答案