将对象的Java ArrayList转换为scala seq

时间:2018-04-03 05:29:49

标签: java scala

我在Java中有ArrayList,它包含Row类型的对象,如下面的

List<Row> Table = new ArrayList<Row>();

我需要将此表格转换为Scala Seq,以便稍后将其转换为数据框架。我试了以下没有成功

var TableScala:Seq[Row] = 
            Table.asScalaJavaConverters.asScalaBufferConverter(getTable).asScala

val newList = TableScala.map(row => new Tuple5(row(0), row(1), row(2), row(3), row(4)))
spark.createDataFrame(newList).toDF("userID")

1 个答案:

答案 0 :(得分:1)

从Scala 2.8.1开始,使用“scala.collection.JavaConverters._”api显式转换这些转换。以下代码显示了使用此API的相同转换。

首次导入

import scala.collection.JavaConverters._

Java列表

List<Row> javaList = new ArrayList<Row>();

使用“asScala”将Java列表转换为Scala列表

val scalaList = javaList.asScala
val squareList = scalaList.map(value => value*value)
println("square list is" + squareList)

参考:http://blog.madhukaraphatak.com/converting-java-collections-to-scala/