Migración de aplicaciones de Data Flow del uso de Spark 2.4 al uso de Spark 3.0.2

Obtenga información sobre la migración de Data Flow para utilizar Spark 3.0.2 en lugar de Spark 2.4.4.

Data Flow ahora soporta tanto Spark 2.4.4 como Spark 3.0.2. En este capítulo se describe lo necesario para migrar aplicaciones de Data Flow existentes desde Spark 2.4.4 a Spark 3.0.2.

Migración de Data Flow a Spark 3.0.2

Pasos para migrar Data Flow de Spark 2.4.4 a Spark 3.0.2 e incidencias que hay que vigilar.

  1. Siga los pasos de la guía de migración de Spark.
  2. Spark 3.0.2 requiere Scala 2.12. Las aplicaciones Scala compiladas con una versión anterior de Scala y sus dependencias se deben actualizar según corresponda.
  3. Si ha incluido una propiedad en la lista de permitidos de Spark 2.4.4, debe crear una solicitud independiente para incluirla en la lista de permitidos de Spark 3.0.2.
  4. Actualice POM.xml para llamar claramente a las dependencias para las bibliotecas de Spark.
  5. Cuando realice la Edición de una aplicación, la creación de una aplicación de Data Flow de Scala o Java, la creación de una aplicación de Data Flow de PySpark o lacreación de una aplicación de Data Flow de SQL, seleccione Spark 3.0.2 -> Scala 2.12 en Versión de Spark.
    Nota

    Si cambia la versión de Spark de una aplicación que ya tiene una ejecución y, a continuación, vuelve a ejecutar esta ejecución anterior, esta utiliza la nueva versión de Spark, no la versión con la que se ejecutó originalmente.

Errores al analizar cadenas de fecha o de registro de hora

Descubra cómo superar los errores de análisis o formato en Data Flow relacionados con cadenas de registro de hora o de fecha que han migrado de Spark 2.4.4 a Spark 3.0.2.

Después de migrar las aplicaciones de Data Flow a Spark 3.0.2, obtiene el siguiente error al ejecutar una aplicación:
org.apache.spark.SparkUpgradeException: You may get a different result due to the upgrading of Spark 3.0: Fail to recognize 'MMMMM' pattern in the DateTimeFormatter.
Para corregirlo, defina spark.sql.legacy.timeParserPolicy en LEGACY. Vuelva a ejecutar la aplicación.