【发布时间】:2019-02-06 14:37:21
【问题描述】:
我编写了以下代码来将数据提供给 Spark 2.3 中的机器学习算法。下面的代码运行良好。我需要增强此代码,以便不仅可以转换 3 列,还可以转换任意数量的列,通过 csv 文件上传。例如,如果我加载了 5 列,如何将它们自动放入下面的 Vector.dense 命令中,或者以其他方式生成相同的最终结果?有谁知道如何做到这一点?
val data2 = spark.read.format("csv").option("header",
"true").load("/data/c7.csv")
val goodBadRecords = data2.map(
row =>{
val n0 = row(0).toString.toLowerCase().toDouble
val n1 = row(1).toString.toLowerCase().toDouble
val n2 = row(2).toString.toLowerCase().toDouble
val n3 = row(3).toString.toLowerCase().toDouble
(n0, Vectors.dense(n1,n2,n3))
}
).toDF("label", "features")
谢谢
问候,
阿迪尔
【问题讨论】:
标签: scala apache-spark apache-spark-sql apache-spark-mllib apache-spark-ml