如何使用Scala

时间:2019-06-04 10:08:59

标签: scala apache-spark

如果这不是问问题的正确方法,我想首先道歉,但这是我的第一个问题。

我有一个包含2列的CSV,其中一列包含名称,另一列包含值。

我已经将CSV作为Scala DataFrame导入到Spark中,我想将所有值分配给单个变量(从列名中获取变量名)。

DataFrame如下所示(变量更多,并且变量总数可以更改)

|                name|value|
+--------------------+-----+
|           period_id|  188|
|            homeWork| 0.75|
|             minDays|    7|
...

我可以使用下面的代码将一行的值分配给一个变量,但是我想对所有记录自动执行。

val period_id = vbles.filter(vbles("name").equalTo("period_id")).select("value").first().getString(0).toDouble

我的想法是遍历DataFrame中的所有行,并每次都在上面运行代码,类似

for (valName <- name) {
    val valName = vbles.filter(vbles("name").equalTo(valName )).select("value").first().getString(0).toDouble
}

我尝试过some ways遍历DataFrame的行,但是没有成功。

我想要得到的就像是手动完成

val period_id = 188
val homeWork = 0.75
val minDays = 7
...

我想有一些更聪明的方法可以做到这一点,但是,尽管可以使用任何可行的解决方案,但只要我可以遍历所有行,就可以了。

非常感谢

0 个答案:

没有答案