我想使用hadoop示例RandomWriter进行基准测试并生成文件。键的类型和值都是BytesWritable。那么如何使用Spark对该文件排序?似乎我无法直接调用sortByKey()。
最佳答案
您想要做的是在 .sortBy
中使用RDD
方法,对吗?这就是为什么找不到.sortByKey
的OrderedRDDFunctions
方法的原因。
正如@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/