0
我有一個pipelinedrdd如下。每行有超過4k列,但我只展示了很少。pyspark列值處理
raw_rdd
['2016-09-21T00:00:00-05:00 Chicago,"","",150.39999389648438cfm,false,false,0.30000001192092896inHO,68F,70.69999694824219F,.....']
在這裏我想申請一定改造,例如如果字段值相匹配的正則表達式"\d{4}[-]\d{2}[-]\d{2}"
的日期值2016-09-21T00:00:00-05:00 Chicago
那麼它應該只2016-09-21T00:00:00-05:00
返回。但它正在返回原始值。
代碼
def is_date(inst):
if re.search("\d{4}[-]\d{2}[-]\d{2}", inst):
return True
def transform(line):
for i in range(len(line)):
if is_date(str(line[i])):
if str(line[i]) != "":
line[i] = line[i].split()[0]
return line
transformed_rdd = raw_rdd.map(transform)
誰能幫我找出問題,因爲我要去的地方錯了。
您沒有返回匹配,只有在匹配時才返回True並打印整個'line'。返回'group(0)'並打印。 –