Por nada!
Resolvi fazer um teste no código que me mandou e funciona também perfeitamente! (Irá retornar um timestamp o que também serve)
De qualquer forma quem precisar usar tanto sua função quanto:
def converter_data(data_str):
try:
return datetime.strptime(str(data_str), '%Y%m%d').date()
except:
return None
converter_udf = f.udf(converter_data, DateType())
## Converter Colunas Datas::
socios = socios.withColumn( 'data_de_entrada_sociedade', converter_udf(socios.data_de_entrada_sociedade) )
estabelecimentos = estabelecimentos\
.withColumn(
'data_situacao_cadastral', converter_udf(estabelecimentos.data_situacao_cadastral),
)\
.withColumn(
'data_de_inicio_atividade', converter_udf(estabelecimentos.data_de_inicio_atividade),
)\
.withColumn(
'data_da_situacao_especial', converter_udf(estabelecimentos.data_da_situacao_especial),
)
socios.show(5)
socios.printSchema()
Vai funcionar perfeitamente!
Só deixar a coluna de data como string antes ou ja trazer o df como string! :)