我是Python的新手,所以我试图使之尽可能简单。我正在使用CSV文件,其中包含我必须Mapreduce的数据。在我的映射器部分中,我得到了空白数据,这使我的数据无法还原。这是由于CSV文件中包含黑色。我需要有关如何在Mapper中去除黑色的建议,这样它就不会进入我的Reducer中。
Example of my result.
BLUE 1
GY 1
WT 1
1
WH 1
1
BLACK 1
1
GN 1
BLK 1
BLACK 1
RED 1
我的代码
#!/usr/bin/python
from operator import itemgetter
import sys
sys_stdin = open("Parking_Violations.csv", "r")
for line in sys_stdin:
line = line.split(",")
vehiclecolor = line[33] #This is the column in CSV file where data i need is located.
try:
issuecolor = str(vehiclecolor)
print("%s\t%s" % (issuecolor, 1))
except ValueError:
continue
您可以使用内置的string.strip功能
#!/usr/bin/python
from operator import itemgetter
import sys
from typing import List, Any
sys_stdin = open("Parking_Violations.csv", "r")
for line in sys_stdin:
line = [x for x in line.split(",") if x.strip()]
vehiclecolor = line[33]
try:
issuecolor = str(vehiclecolor)
print("%s\t%s" % (issuecolor, 1))
except ValueError:
continue
它的作用是从line.split(',')
创建线元素数组,并在去除空格后仅采用长度大于0个字符if x.strip()
的元素。
在Python中,空字符串的表达式被识别为“ false”。
注意:您能否详细说明以下内容?
vehiclecolor = line[33]