2016-01-22 123 views

回答

8

使用模式匹配在:

import org.apache.spark.sql.Row 

myDF.map{case Row(a: String, b: Int) => (a, b)} 

火花1.6+可以使用Dataset如下:

myDF.as[(String, Int)].rdd 
+2

哦,那'as'功能完善。 –

+0

所以你的模式匹配'行'比我的'asInstanceOf'地图更快或更安全?还是它归结为一个相当类似的操作,语法更清晰? –

+0

第二种选择我很害怕。对于静态类型来说,'Row'(和'DataFrame'一般)相当烦人。使用'数据集'应该更有效率,特别是如果你不转换为RDD。 – zero323

相关问题