例如,假设我有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架构?
答案 0 :(得分:9)
在37777777777
上使用模式匹配:
Row
在Spark 1.6+中,您可以使用import org.apache.spark.sql.Row
myDF.map{case Row(a: String, b: Int) => (a, b)}
,如下所示:
Dataset