scala - 将字符串 RDD 转换为 Int RDD

标签 scala apache-spark

我是 scala 新手..我想知道在 Spark 中使用 scala 处理大型数据集时是否可以读取为 int RDD 而不是 String RDD

我尝试了以下方法:

val intArr = sc
              .textFile("Downloads/data/train.csv")
              .map(line=>line.split(","))
              .map(_.toInt)

但我收到错误:

error: value toInt is not a member of Array[String]

我需要转换为 int rdd 因为接下来我需要执行以下操作

val vectors = intArr.map(p => Vectors.dense(p))

要求类型为整数

非常感谢任何形式的帮助..提前致谢

最佳答案

据我了解,一行应该创建一个向量,所以它应该是这样的:

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]

关于scala - 将字符串 RDD 转换为 Int RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39727964/

相关文章:

scala - 未找到 LabelledGeneric 的无形映射器

apache-spark - 将Parquet文件加载到作为Parquet失败存储的Hive表中(值是null)

scala - org.apache.spark.SparkException:任务无法序列化(由org.apache.hadoop.conf.Configuration引起)

apache-spark - 仅获取所有hdfs direcorties文件

scala - 如何在 Spark 中获取 map task 的 ID?

scala - 如何在 Scala 中为类实例生成唯一 ID?

scala - scaladoc 说 "All operations are guaranteed to be performed in a single-threaded manner"是什么意思?

java - 是否有具有固定容量和自定义比较器的 PriorityQueue 实现?

css - JavaFX CSS 不工作

scala - Apache Spark Scala CosmosDB 连接器将 DataFrame 写回数据库