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.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para convertir una cadena de fecha y hora desde la zona horaria de Australia/Melbourne a UTC en Apache Spark usando Scala, podemos seguir estos pasos:

    1. Crear un objeto SparkSession para iniciar una aplicación de Spark.
    2. Importar las clases necesarias para trabajar con funciones de fecha y hora en Apache Spark.
    3. Convertir la cadena de fecha y hora a una marca de tiempo Unix utilizando la función unix_timestamp.
    4. Utilizar la función from_unixtime para convertir la marca de tiempo Unix a una cadena de fecha y hora en la zona horaria UTC.

    Aquí está el fragmento de código para lograr lo mismo:

    import org.apache.spark.sql.functions.{unix_timestamp, from_utc_timestamp}
    
    val spark = SparkSession.builder.appName("DateTimeConversion").getOrCreate()
    
    val datetimeString = "21/10/2021 15:15:28"
    
    val melbourneTimeZone = "Australia/Melbourne"
    
    // Convertir la cadena de fecha y hora en marca de tiempo Unix utilizando la zona horaria
    val unixTimestamp = unix_timestamp(datetimeString, "dd/MM/yyyy HH:mm:ss")
    val melbourneTimestamp = from_utc_timestamp(unixTimestamp, melbourneTimeZone)
    
    // Convertir la marca de tiempo Unix a la zona horaria UTC
    val utcTimestamp = from_utc_timestamp(melbourneTimestamp, "UTC")
    val utcDatetimeString = utcTimestamp.format("dd/MM/yyyy HH:mm:ss")
    
    println(s"Cadena de fecha y hora UTC: $utcDatetimeString")
    

    En este fragmento de código, primero importamos las funciones necesarias desde el paquete org.apache.spark.sql.functions. Luego, creamos un objeto SparkSession para iniciar una aplicación de Spark.

    A continuación, definimos la cadena de entrada de fecha y hora y la zona horaria en la que se encuentra, es decir, Australia/Melbourne.

    Para convertir la cadena de fecha y hora a una marca de tiempo Unix, utilizamos la función unix_timestamp y especificamos el formato de entrada como dd/MM/yyyy HH:mm:ss.

    Luego utilizamos la función from_utc_timestamp para convertir la marca de tiempo Unix desde la zona horaria de Melbourne a la zona horaria UTC.

    Finalmente, convertimos la marca de tiempo UTC al formato de salida deseado, es decir, dd/MM/yyyy HH:mm:ss, utilizando la función format y la imprimimos.

Comments are closed.