如何在 Scala 中将 RDD 转换为 2D 数组



我正在使用Apache Spark进行项目。我有一个DataFrame.我已经能够将其转换为RDD.我需要将其转换为 2d 数组。下面是我编写的代码。接下来我应该怎么做?

val x: List[List[String]] = df.select(columnNames(0), (columnNames.drop(1): _*)).rdd.collect()

这里 dfDataFrame .

在聊天中讨论您的问题后,这是解决方案:

val x : List[List[String]] = df.select(columnNames.head, columnNames.tail: _*).
                             rdd.map{ case r : Row => 
                               Row(r.getAs[Long](0).toString,r.getAs[Long](1).toString,r.getAs[String](2)).toSeq.map(v => v.asInstanceOf[String]).toList
                             }.collect.toList

由于我对实际数据没有看法,请记住这是一个示例,您可以通过字段名称根据需要获取列。例 : r.getAs[String]("column1")

另一个我不太喜欢的解决方案是:

val x : List[List[String]] = df.select(columnNames.head, columnNames.tail: _*).
                             rdd.map{ case r : Row => 
                               r.mkString(",").split(",").toList
                             }.collect.toList

相关内容

  • 没有找到相关文章

最新更新