5
例如,假设我有数据帧:Apache Spark:如何将Spark DataFrame转换为类型为RDD [(Type1,Type2,...)]的RDD?
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模式?
哦,那'as'功能完善。 –
所以你的模式匹配'行'比我的'asInstanceOf'地图更快或更安全?还是它归结为一个相当类似的操作,语法更清晰? –
第二种选择我很害怕。对于静态类型来说,'Row'(和'DataFrame'一般)相当烦人。使用'数据集'应该更有效率,特别是如果你不转换为RDD。 – zero323