为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

森栏 2019-08-08 14:48:54
如何跳过Spark中CSV文件的标题?假设我给三个文件路径指向要读取的Spark上下文,并且每个文件在第一行中都有一个模式。我们如何从头文件中跳过架构线?val rdd=sc.textFile("file1,file2,file3")现在,我们如何跳过此rdd的标题行?
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超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 
)


查看完整回答
反对 回复 2019-08-08
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

data = sc.textFile('path_to_data')header = data.first() #extract header
data = data.filter(row => row != header)   #filter out header


查看完整回答
反对 回复 2019-08-08
  • 3 回答
  • 0 关注
  • 1176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信