python – 使用Spark加载CSV文件

我是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文件多于一列。

最佳答案
你确定所有的行至少有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()

转载注明原文:python – 使用Spark加载CSV文件 - 代码日志