我想使用hadoop示例RandomWriter进行基准测试并生成文件。键的类型和值都是BytesWritable。那么如何使用Spark对该文件排序?似乎我无法直接调用sortByKey()。

最佳答案

您想要做的是在 .sortBy 中使用RDD方法,对吗?这就是为什么找不到.sortByKeyOrderedRDDFunctions方法的原因。

正如@JustinPihony所指出的,这要求密钥的隐式排序,在这种情况下(AFAIK)将被定义为:

implicit val randomWriterOrdering = new Ordering[RandomWriter] {
  def compare(a: RandomWriter, b: RandomWriter) = a compareTo b
}

然后,您只需从RandomWriter中提取RDD即可,该功能文档会以f: (T) ⇒ K的形式呈现,因为该方法中的所有其他参数均为​​默认值。

嗯,据我所知。为上下文添加一些小的代码段是一个好主意。例如,无法实现的最小功能/方法的接口(interface)通常很有用。

关于scala - Spark-按键排序,类型为BytesWritable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29148216/

10-13 08:34