如何跳过Spark中CSV文件的标题?

如何跳过Spark中CSV文件的标题?

假设我给三个文件路径指向要读取的Spark上下文,并且每个文件在第一行中都有一个模式。我们如何从头文件中跳过架构线?

val rdd=sc.textFile("file1,file2,file3")

现在,我们如何跳过此rdd的标题行?


森栏
浏览 1180回答 3
3回答

牛魔王的故事

如果第一条记录中只有一个标题行,那么过滤它的最有效方法是:rdd.mapPartitionsWithIndex {   (idx, iter) => if (idx == 0) iter.drop(1) else iter  }如果当然有许多文件中包含许多标题行,这没有用。事实上,你可以通过这种方式结合三个RDD。你也可以写一个filter只匹配一个可能是标题的行。这很简单,但效率较低。Python等价物:from itertools import islice rdd.mapPartitionsWithIndex(     lambda idx, it: islice(it, 1, None) if idx == 0 else it  )

犯罪嫌疑人X

data = sc.textFile('path_to_data')header = data.first() #extract header data = data.filter(row => row != header)   #filter out header
打开App,查看更多内容
随时随地看视频慕课网APP