如何在Scala中为1000个元素创建映射函数

时间:2018-07-06 16:55:31

标签: scala apache-spark

我已经手动创建了一个映射函数(map)来映射RDD的某些元素。

  val rdd = sc.parallelize(List(
  LabeledPoint(5.0, Vectors.dense(1,2)), 
  LabeledPoint(12.0, Vectors.dense(1,3)),
  LabeledPoint(20.0, Vectors.dense(-1,4))))

  val map = Map(5 -> 0.0, 12.0 -> 1.0, 20.0 -> 2.0)

  val trainingData = rdd.map{
    case LabeledPoint(category, features) => LabeledPoint(map(category), features)
}

如何为1000个元素创建映射功能。这1000个元素在RDD中称为“独立”。 我已经尝试过了

var i=0
val map=distinct.map
      { x=>Map(x -> i)
        i=i+1
      }

但这不能用作映射功能

val trainingData = rdd.map{
          case LabeledPoint(category, 
  features) => LabeledPoint(map(category), features)
        }

1 个答案:

答案 0 :(得分:1)

<div class="form-group"> <select id="typeNotification" class="form-control"> <option>Shock Sensor</option> <option>GPS Jamming</option> <option>Ingition off</option> <option>Temperture</option> </select> </div> <input type="text" id="phoneNumber" class="form-control" id="exampleInputSMS" aria-describedby="emailHelp" placeholder="Enter phone number"> <input type="email" id="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email"> <button type="button" onclick="javascript: addButton()" id="addNotification" class="btn btn-primary" >Add Notification</button>,然后zipWithIndex

collectAsMap