Apache Spark:如何将Spark DataFrame转换为类型为RDD [(Type1,Type2,...)]的RDD?

时间:2016-01-22 19:52:01

标签: scala apache-spark

例如,假设我有DataFrame:

var myDF = sc.parallelize(Seq(("one",1),("two",2),("three",3))).toDF("a", "b")

我可以使用地图将其转换为RDD[(String, Int)]

var myRDD = myDF.map(r => (r(0).asInstanceOf[String], r(1).asInstanceOf[Int]))

有没有更好的方法来执行此操作,可能使用DF架构?

1 个答案:

答案 0 :(得分:9)

37777777777上使用模式匹配:

Row

在Spark 1.6+中,您可以使用import org.apache.spark.sql.Row myDF.map{case Row(a: String, b: Int) => (a, b)} ,如下所示:

Dataset