![](/img/trans.png)
[英]type mismatch; found : org.apache.spark.sql.DataFrame required: org.apache.spark.rdd.RDD
[英]Apache Spark: How do I convert a Spark DataFrame to a RDD with type RDD[(Type1,Type2, …)]?
例如,假设我有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架构?
在Row
使用模式匹配:
import org.apache.spark.sql.Row
myDF.map{case Row(a: String, b: Int) => (a, b)}
在Spark 1.6+中,您可以使用Dataset
,如下所示:
myDF.as[(String, Int)].rdd
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.