2017-09-04 47 views
0

如何在Spark/Scala中将_1,_2重命名为有意义的列名?Spark/Scala - 重命名列生成的列

root 
    |-- aaa: string (nullable = true) 
    |-- bbb: array (nullable = true) 
    | |-- element: struct (containsNull = true) 
    | | |-- _1: string (nullable = true) 
    | | |-- _2: long (nullable = false) 

回答

0

创建一个case类并将元组转换为case类。这样你可以命名元组。

case class person(name:String,age:Int) 
val personRdd=rdd.map(_.split(<delimeter>)).map(x => person(x._1,x._2)) 

现在你可以访问personRdd元组值

personRdd.map(p => (p.name+":"+p.age))