Python pyspark中的列值处理

Python pyspark中的列值处理,python,regex,pyspark,Python,Regex,Pyspark,我有一个管道,如下所示。每行中有超过4k的列,但我只显示了很少的列 raw_rdd ['2016-09-21T00:00:00-05:00 Chicago,"","",150.39999389648438cfm,false,false,0.30000001192092896inHO,68F,70.69999694824219F,.....'] 在这里,我尝试应用某些转换,例如如果字段值与regex“\d{4}[-]\d{2}[-]\d{2}”匹配日期值2016-09-21T00:00-05

我有一个管道,如下所示。每行中有超过4k的列,但我只显示了很少的列

 raw_rdd
 ['2016-09-21T00:00:00-05:00 Chicago,"","",150.39999389648438cfm,false,false,0.30000001192092896inHO,68F,70.69999694824219F,.....']
在这里,我尝试应用某些转换,例如如果字段值与regex
“\d{4}[-]\d{2}[-]\d{2}”
匹配日期值
2016-09-21T00:00-05:00 Chicago
,那么它应该只返回
2016-09-21T00:00-05:00
。但它正在返回原始值

代码


谁能帮我找出问题所在。

问题是我将整行视为列值。在我进行分割(,)之后,我得到了正确的o/p

您没有返回匹配项,只有在存在匹配项时才返回True,并打印整行
。返回
组(0)
并打印它。
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)