Как я могу использовать dataframe вместо rdd для нахождения манхэттенского расстояния? - PullRequest
0 голосов
/ 29 июня 2018

Я уже написал код в Spark RDD вроде:

val result = data.map(x => {
      val eachrecord = x.split(delimiter).map(y => {
        y
      })
      val filterRec = eachrecord.indices.map(x => {
        if(selectedIndex.contains(x)){
          eachrecord(x)
        }
        else{
          ""
        }
      }).filter(x => x!= "").map(y => y.toDouble).toArray
      eachrecord.mkString(delimiter) + delimiter + cendroid.zip(filterRec).foldLeft(0.0) { case (sum, (v1, v2)) => sum + Math.abs(v1 - v2)}
    })

здесь data есть RDD[String]

selectedIndex это какие столбцы относятся к этой мере. Как это можно выполнить в кадре данных? Сейчас я использую Spark 2.3.1. образец данных:

   c1,c2,c3,c4,c5
   5.1,3.5,1.4,0.2,0
   4.9,3,1.4,0.2,0
   4.7,3.2,1.3,0.2,0
   4.6,3.1,1.5,0.2,0 
   5,3.6,1.4,0.2,0
   5.4,3.9,1.7,0.4,0
   4.6,3.4,1.4,0.3,0  
   5,3.4,1.5,0.2,0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...