TypeError:“列”对象不可调用

时间:2020-10-09 12:15:43

标签: pyspark

我正在尝试在pyspark中运行此代码,并出现以下错误:

data.filter(
    (((F.col('post_v1_web_page_name') == 'escritorio:publica:general:formulario:formulario crm tarjetas bbva:confirmacion') | (F.col('post_v1_web_page_name') == 'escritorio:publica:general:formulario:formulario crm tarjetas bbva paca:confirmacion') |  (F.col('post_v1_web_page_name') == 'escritorio:publica:general:formulario:tarjeta tres meses sin:confirmacion') | (F.col('post_v1_web_page_name') == 'escritorio:publica:general:formulario:tarjetas premium:confirmacion') | (F.col('post_v1_web_page_name') == 'escritorio:publica:general:formulario:tarjeta repsol credito:confirmacion') | (F.col('post_v1_web_page_name') == 'escritorio:publica:personas:tarjeta repsol:credito:tarjetas:confirmacion') | (F.col('post_v1_web_page_name') == 'escritorio:privada:particulares:tarjeta credito:3 estudio de la solicitud:1 direccion entrega'))
    | ((F.col('post_v1_web_page_name').like("%formulario:formulario%")) & (F.col('post_v1_web_page_name').like("%tarjeta%")) & (F.col('post_v1_web_page_name').like("%crm%")) & (F.col('post_v1_web_page_name').like("%confirma%")))
    | ((F.col('post_v1_web_page_name').like("%escritorio:publica:personas%")) & (F.col('post_v1_web_page_name').like("%tarjetas:credito%")) & (F.col('post_v1_web_page_name').like("%confirmacion%")))
    | ((F.col('post_v1_web_page_name').like("%responsive-tablet:publica:personas%")) & (F.col('post_v1_web_page_name').like("%tarjetas:credito%")) & (F.col('post_v1_web_page_name').like("%confirmacion%"))))
    | (((((F.col('post_v1_web_page_name').like("%formulario:tarjetas de credito%")) | (F.col('post_v1_web_page_name').like("%formulario:tarjetas repsol%")) | (F.col('post_v1_web_page_name').like("%web-movil:publica:general:formulario:tarjeta repsol credito%")) | (F.col('post_v1_web_page_name').like("%web-movil:tarjetas:tarjeta despues%")) | (F.col('post_v1_web_page_name').like("%web-movil:formulario:tarjeta viat bbva%")) | (F.col('post_v1_web_page_name').like("%web-movil:publica:particulares:formulario:tarjeta viat%")) | (F.col('post_v1_web_page_name').like("%web-movil:formulario:tarjeta refe dorada%")) | (F.col('post_v1_web_page_name').like("%web-movil:formulario:tarjetas motor credito bbva%")) | (F.col('post_v1_web_page_name').like("%web-movil:formulario:credito tarjeta viajes movil%")) | (F.col('post_v1_web_page_name').like("%web-movil:formulario:tarjetas de credito tarjetas bbva")) | (F.col('post_v1_web_page_name').like("%web-movil:formulario:tarjetas de credito 3 meses sin%")) | (F.col('post_v1_web_page_name') == 'responsive-mobile:publica:personas:tarjetas:credito:tarjeta respsol:finalizado') | (F.col('post_v1_web_page_name') == 'responsive:mobile:publica:personas:tarjeta repsol:credito:tarjetas:nombre:finalizado'))
    & (F.col('post_v1_web_page_name').like("%finalizado%"))
    & (F.col('post_v1_web_page_name').notlike("%debito%"))) 
    | ((F.col('post_v1_web_page_name') == 'web-movil:formulario:otros:2 finalizado') & (F.col('post_v47_appl_typology_name') == 'TMM')) 
    | ((F.col('post_v1_web_page_name').like("%publica:personas%")) & (F.col('post_v1_web_page_name').like("%tarjetas:credito%")) & (F.col('post_v1_web_page_name').like("%finalizado%")))
    | ((F.col('post_v1_web_page_name').like("%card request form%")) & (F.col('post_v1_web_page_name').like("%confirmation%")))
      )))

1 个答案:

答案 0 :(得分:0)

此错误意味着您尝试在一个或多个F.col实例上调用一个不可用的函数。例如,据我所知,this question.可能是notlike。{p>

一般说明:您正在开发的条件很难被其他开发人员维护,也可能难以理解。我建议将条件分为多个变量,并逐步进行组合。 例如

condition_is_required_pattern = F.col('post_v1_web_page_name').like("%finalizado%") | F.col('post_v1_web_page_name').like("%otherRegex%")
condition_not_illegal_pattern = ~ F.col('post_v1_web_page_name').like("%debito%")
data_filterd = data.filter(
      condition_is_required_pattern 
      & condition_not_illegal_pattern
)