用Spark加载CSV文件
发布于 2021-01-29 17:32:30
我是Spark的新手,正在尝试使用Spark从文件读取CSV数据。这是我在做什么:
sc.textFile('file.csv')
.map(lambda line: (line.split(',')[0], line.split(',')[1]))
.collect()
我希望此调用能给我列出文件的前两列,但出现此错误:
File "<ipython-input-60-73ea98550983>", line 1, in <lambda>
IndexError: list index out of range
尽管我的CSV文件不止一列。
关注者
0
被浏览
41
1 个回答
-
您确定 所有 行都至少有2列?您可以尝试类似的方法吗?
sc.textFile("file.csv") \ .map(lambda line: line.split(",")) \ .filter(lambda line: len(line)>1) \ .map(lambda line: (line[0],line[1])) \ .collect()
或者,您可以打印罪魁祸首(如果有):
sc.textFile("file.csv") \ .map(lambda line: line.split(",")) \ .filter(lambda line: len(line)<=1) \ .collect()