将 String RDD 转换为 Int RDD
Posted
技术标签:
【中文标题】将 String RDD 转换为 Int RDD【英文标题】:Converting String RDD to Int RDD 【发布时间】:2016-09-27 14:57:59 【问题描述】:我是 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))
要求类型为整数
任何形式的帮助都非常感谢..在此先感谢
【问题讨论】:
【参考方案1】:据我了解,一行应该创建一个向量,所以应该是这样的:
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]
【讨论】:
@sivagama 请接受这个作为正确答案。以上是关于将 String RDD 转换为 Int RDD的主要内容,如果未能解决你的问题,请参考以下文章
如何在 scala 中将 RDD[(int, string)] 转换为 Dataframe