我是scala的新手。我想知道在spark中使用scala处理大型数据集时是否可以读取为int RDD而不是String RDD
我尝试了以下内容:
val intArr = sc
.textFile("Downloads/data/train.csv")
.map(line=>line.split(","))
.map(_.toInt)
但我收到错误:
错误:值toInt不是
的成员Array[String]
我需要转换为int rdd,因为我需要执行以下操作
val vectors = intArr.map(p => Vectors.dense(p))
,要求类型为整数
真正感谢任何形式的帮助。谢谢提前
答案 0 :(得分:3)
据我所知,一行应该创建一个向量,所以它应该像:
val result = sc
.textFile("Downloads/data/train.csv")
.map(line => line.split(","))
.map(numbers => Vectors.dense(numbers.map(_.toInt)))
numbers.map(_.toInt)
会将数组的每个元素映射到int,因此结果类型将为Array[Int]