如何跳过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 )
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
data = sc.textFile('path_to_data')header = data.first() #extract header data = data.filter(row => row != header) #filter out header
添加回答
举报
0/150
提交
取消