如何将我的pyspark代码转换为scala?

时间:2017-01-20 19:17:19

标签: scala pyspark

我是scala初学者。现在我必须将我在Pyspark中编写的一些代码转换为scala。代码只是提取用于建模的字段。 有人能指出我如何将以下代码写入scala吗?至少在哪里以及如何获得快速答案。非常感谢!!!

以下是我之前的代码

{val records = rawdata.map(x=> x.split(","))

val data = records.map(r=> LabeledPoint(extract_label(r), extract_features(r)))

...

def extract_features(record):
    return np.array(map(float, record[2:16]))


def extract_label(record):
    return float(record[16])
}

1 个答案:

答案 0 :(得分:0)

它是这样的:

scala> def extract_label(record: Array[String]): Float = { record(16).toFloat }
extract_label: (record: Array[String])Float

scala> def extract_features(record: Array[String]): Array[Float] = { val newArray = new Array[Float](14); for(i <- 2 until 16) newArray(i-2)=record(i).toFloat; newArray;}
extract_features: (record: Array[String])Array[Float]

可能存在上述逻辑的直接方法。

测试:

scala> records.map(x => extract_label(x)).take(5).foreach(println)
4.9

scala> records.map(x => extract_features(x).mkString(",")).take(5).foreach(println)
6.4,2.5,4.5,2.8,4.7,2.5,6.4,8.5,3.5,6.4,2.9,10.5,6.4,2.2