[英]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.