如果这不是问问题的正确方法,我想首先道歉,但这是我的第一个问题。
我有一个包含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
...
我想有一些更聪明的方法可以做到这一点,但是,尽管可以使用任何可行的解决方案,但只要我可以遍历所有行,就可以了。
非常感谢