600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > rdd转换成java数据结构_如何将CSV文件转换为RDD

rdd转换成java数据结构_如何将CSV文件转换为RDD

时间:2022-08-09 05:43:51

相关推荐

rdd转换成java数据结构_如何将CSV文件转换为RDD

一种简单的方法是拥有一种保留标头的方法。

假设您有一个file.csv,例如:

user, topic, hits

om, scala, 120

daniel, spark, 80

3754978, spark, 1

我们可以定义一个标头类,该标头类使用第一行的解析版本:

class SimpleCSVHeader(header:Array[String]) extends Serializable {

val index = header.zipWithIndex.toMap

def apply(array:Array[String], key:String):String = array(index(key))

}

我们可以使用该标头来处理以后的数据:

val csv = sc.textFile("file.csv") // original file

val data = csv.map(line => line.split(",").map(elem => elem.trim)) //lines in rows

val header = new SimpleCSVHeader(data.take(1)(0)) // we build our header with the first line

val rows = data.filter(line => header(line,"user") != "user") // filter the header out

val users = rows.map(row => header(row,"user")

val usersByHits = rows.map(row => header(row,"user") -> header(row,"hits").toInt)

...

请注意,header仅仅不过是助记符到数组索引的简单映射。几乎所有这些操作都可以在数组中元素的顺序位置上完成,例如user = row(0)

PS:欢迎来到Scala :-)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。