【问题标题】:Converting String RDD to Int RDD将 String RDD 转换为 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))

要求类型为整数

任何形式的帮助都非常感谢..在此先感谢

【问题讨论】:

    标签: scala apache-spark


    【解决方案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 请接受这个作为正确答案。
    猜你喜欢
    • 1970-01-01
    • 2018-11-26
    • 2021-02-26
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 2021-09-28
    相关资源
    最近更新 更多