在rdd spark中进行排序的自定义排序

时间:2016-01-29 10:30:59

标签: scala

我有一个rdd(String,Long,Int,String,String,List [Integer],String,String,String,Long,Long)。我想按元组中的所有字段对它进行排序 也就是说如果_._ 1相等则移动到_._ 2或者返回第一个比较的结果。像这样我想继续直到元组中的最后一个元素。

以下解决方案看起来太笨拙了。在scala中有更好的方法吗?

我正在尝试的是这样的

    $service_url= "http://xxxmeal.com/get_meals?lat=19.2332&lng=14.3422"
    $curl = curl_init ( $service_url );
    curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, true );
    $curl_response = curl_exec ( $curl );
    curl_close ( $curl );

1 个答案:

答案 0 :(得分:1)

我尝试通过将元组转换为序列,压缩它们然后得到第一个比较非零的项目来尝试一种方法。

这将是:

first.productIterator.toSeq.zip(second.productIterator.toSeq).find(
  {case (x, y) => x.compare(y) != 0}
) match {
  case Some(tuple) => {
     if (tuple._1.compare(tuple._2) < 0) 1 else 0
  }
  case None => ???
}