es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Procesamiento de cadenas en columna de tipo de fecha en RDS utilizando PySpark.

Una columna de fecha en un archivo (en AWS S3) está en el formato “July 28, 2021”. Dado que es un archivo, se está tratando como un tipo de datos String. Estoy intentando cargar los datos en RDS (Postgres).

La columna de RDS es de tipo de datos date.

Estoy utilizando la siguiente línea para convertir el String en fecha, pero los NULLS se cargan en la columna de fecha, el resto de las columnas String/integer se cargan correctamente.

df_S3=df_S3.withColumn('visit_date', to_date(df_S3.visit_date, 'MON DD, YYYY'))

Cambié la fecha de “July 28, 2021” a “28-JUL-2021” en el archivo S3 y utilicé la siguiente línea de código para procesar los datos en RDS:

df_S3=df_S3.withColumn('visit_date', to_date(df_S3.visit_date, 'DD-MMM-YYYY'))

Y las fechas se cargaron correctamente en RDS.

¿Podría asesorarme sobre cómo convertir/cargar “July 28, 2021” en una columna de tipo de dato fecha utilizando PySpark?

Gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para convertir “28 de julio de 2021” en una columna de tipo fecha utilizando PySpark, puede usar la función to_date().

    Sin embargo, en su caso, es posible que deba modificar el formato de fecha para que coincida con el formato de cadena en su archivo AWS S3. La razón por la que estaba obteniendo valores NULL en la columna de fecha podría deberse al uso incorrecto del formato de fecha en la función to_date().

    Aquí hay un ejemplo de fragmento de código que podría utilizar:

    from pyspark.sql.functions import to_date
    
    df_s3 = df_s3.withColumn('visit_date', to_date(df_s3.visit_date, 'MMM dd, yyyy'))
    

    En este ejemplo, estamos usando el formato ‘MMM dd, yyyy’ para que coincida con el formato de fecha “28 de julio de 2021”. Puede modificar el formato de fecha según sus necesidades.

    Una vez que la columna de fecha se convierte al formato correcto, debería poder cargarla en RDS (Postgres) sin problemas.

Comments are closed.