我在Jupyter中将一个CSV文件读入RDD,并希望将每一行转换为一对单词而不是单数单词,然后创建单词对的元组,但不知道我应该怎么做。 CSV文件如下所示:
阿富汗,AFG
阿尔巴尼亚,ALB
阿尔及利亚,ALG
美国Somoa,ASA
安圭拉,友邦保险
我试过这个:
lines = sc.textFile(...) words = lines.flatMap(lambda line:line.split(“”))
但它并没有让阿尔巴尼亚,ALB成为一个元组。相反,它将阿尔巴尼亚视为一个,将ALB视为另一个。求救!
答案 0 :(得分:4)
您需要使用map
代替flatMap
。您可以按如下方式创建元组列表:
result = sc.textFile("...").map(lambda line:tuple(line.split(",")))
result.collect()
然后返回:
[(u'Afghanistan', u' AFG'),
(u'Albania', u' ALB'),
(u'Algeria', u' ALG'),
(u'American Somoa', u' ASA'),
(u'Anguilla', u' AIA')]
查看此输出,您可能需要添加unicode.strip
以删除前导空格:
sc.textFile("....").
map(lambda line:tuple(map(unicode.strip,line.split(",")))).
collect()