eva*_*man 6 scala apache-spark
例如,假设我有DataFrame:
var myDF = sc.parallelize(Seq(("one",1),("two",2),("three",3))).toDF("a", "b")
Run Code Online (Sandbox Code Playgroud)
我可以将它转换为RDD[(String, Int)]带有地图的a:
var myRDD = myDF.map(r => (r(0).asInstanceOf[String], r(1).asInstanceOf[Int]))
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现这一点,可能使用DF架构?
zer*_*323 10
使用模式匹配Row:
import org.apache.spark.sql.Row
myDF.map{case Row(a: String, b: Int) => (a, b)}
Run Code Online (Sandbox Code Playgroud)
在Spark 1.6+中,您可以使用Dataset如下:
myDF.as[(String, Int)].rdd
Run Code Online (Sandbox Code Playgroud)