2016-04-25 59 views
0

我有这样的数据集,我从csv文件中获取数据,但是如何在Scala中存储 以进行处理。如何对Scala中有多列的数据集进行排名?

+-----------+-----------+----------+ 
| recent | Freq  | Monitor | 
+-----------+-----------+----------+ 
|  1 |  1234| 199090| 
|  4 |  2553| 198613| 
|  6 |  3232 | 199090| 
|  1 |  8823 | 498831| 
|  7 |  2902 | 890000| 
|  8 |  7991 | 081097| 
|  9 |  7391 | 432370| 
|  12 |  6138 | 864981| 
|  7 |  6812 | 749821| 
+-----------+-----------+----------+ 

其实我需要对数据进行排序并对其进行排名。 我是Scala编程新手。 感谢

+0

什么是排名?有没有公​​式? – agusgambina

+0

我将这些数据排列在底部附近。 – jwvh

+0

@Niranjanp我不明白什么排名靠近底部的数据意味着什么。有没有一个公式来获得排名?答案很清楚我在做什么? – agusgambina

回答

0

在这里回答你的问题是解决方案,该代码读取由第三列

object CSVDemo extends App { 
    println("recent, freq, monitor") 
    val bufferedSource = io.Source.fromFile("./data.csv") 
    val list: Array[Array[String]] = (bufferedSource.getLines map { line => line.split(",").map(_.trim) }).toArray 
    val newList = list.sortBy(_(2)) 
    newList map { line => println(line.mkString(" ")) } 
    bufferedSource.close 
} 

你阅读文件,而你是解析到一个Array[Array[String]]一个CSV和秩序,那么你为了通过第三列,并且您打印

+0

感谢这个数据集我正在从csv文件读取,但我如何存储在集合或数组的scala中的任何集合类型。 – Niranjanp

+0

@Niranjanp昨天我没有得到问题,这里是解决方案。希望它有帮助 – agusgambina

+0

非常感谢。我真的很感激它。 – Niranjanp

0

在这里我使用列表并尝试一次标准化每列然后连接它们。有没有其他的方式来明智地迭代列并使其正常化。对不起,我的编码很基础。

val col1 = newList.map(line => line.head) 

val mi = newList.map(line => line.head).min 

val ma = newList.map(line => line.head).max 

println("mininumn value of first column is " +mi) 
println("maximum value of first column is : " +ma) 

// calculate scale for the first column 

val scale = col1.map(x => math.round((x.toInt - mi.toInt)/(ma.toInt - mi.toInt))) 

println("Here is the normalized range of first column of the data") 

scale.foreach(println) 
+0

我想问问这个答案如何解决你的问题。我没有看到任何连接 – eliasah

+0

我的主要任务是规范化数据并分配等级。从第一个代码我加载CSV文件并转换成列表(@gusgambina代码)。其次,我正在使用该列表,并通过迭代每条线的第一个元素来找到最小值和最大值。然后使用线性Min-Max归一化方法对其进行归一化。在这里,我只把代码放在列表中的一列。同样,我正在处理其余列,然后尝试合并它们。这是做这件事的正确方法。 – Niranjanp

+0

这是一个新问题吗?如果是的话请把它作为一个新问题发布!如果为这个问题提供的答案回答你的第一个问题,请接受它来解决问题 – eliasah

相关问题