我需要从hdfs中存储的tab delmited文件中提取几个列。
我能够将hdfs读入rdd并将行拆分为列表,但我不知道如何获取我关心的列。。
我的代码:
raw_file = sc.textFile("hdfs.......tsv")
rdd = raw_file.map(lambda line: line.split('\t'))
newfile中的每一列都包含相同类型的内容,我想提取26、80、109、452列并将它们放入一个列表中。
我试过:
filtered = rdd.filter(lambda line: append(line[26]), append(line[80]), append(line[109], append(line[452])).collect()
但显然没有append方法。那我该怎么办?
1条答案
按热度按时间piztneat1#
筛选器用于根据某些条件返回或忽略行。
你要找的是Map。Map用于转换(或在您的情况下提取部分)行。让我们以字母列表的rdd为例。如果我只需要第1、第3和第5个元素(列),我可以使用Map来提取它们。
过滤器作用于行,Map作用于行内的数据