Solución de problemas del conector de formato Parquet en Azure Data Factory y Azure Synapse
SE APLICA A: Azure Data Factory Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.
En este artículo se proporcionan sugerencias para solucionar problemas comunes con el conector de formato Parquet en Azure Data Factory y Azure Synapse.
Código de error: ParquetJavaInvocationException
Mensaje:
An error occurred when invoking java, message: %javaException;.
Causas y recomendaciones: diversas causas pueden provocar este error. Busque en la lista siguiente el análisis de las posibles causas y la recomendación relacionada.
Análisis de las causas Recomendación Si el mensaje de error contiene las cadenas "java.lang.OutOfMemory", "Java heap space" y "doubleCapacity", suele tratarse de un problema de administración de memoria en la versión anterior de Integration Runtime. Si usa el entorno de ejecución de integración autohospedado y la versión es anterior a 3.20.7159.1, se recomienda actualizar a la versión más reciente. Si el mensaje de error contiene la cadena "java.lang.OutOfMemory", significa que el entorno de ejecución de integración no tiene suficientes recursos para procesar los archivos. limite las ejecuciones simultáneas en Integration Runtime. En el caso del entorno de ejecución de integración autohospedado, escale verticalmente a una máquina eficaz con una memoria igual o superior a 8 GB. Cuando el mensaje de error contiene la cadena "NullPointerReference", podría tratarse de un error transitorio. Vuelva a intentar la operación. Si el problema persiste, póngase en contacto con el soporte técnico.
Código de error: ParquetInvalidFile
Mensaje:
File is not a valid Parquet file.
Causa: Se trata de un problema con el archivo Parquet.
Recomendación: Compruebe que la entrada sea un archivo Parquet válido.
Código de error: ParquetNotSupportedType
Mensaje:
Unsupported Parquet type. PrimitiveType: %primitiveType; OriginalType: %originalType;.
Causa: el formato Parquet no se admite en las canalizaciones de Azure Data Factory y Synapse.
Recomendación: Vuelva a comprobar los datos de origen en Formatos de archivo y códecs de compresión que admite la actividad de copia.
Código de error: ParquetMissedDecimalPrecisionScale
Mensaje:
Decimal Precision or Scale information is not found in schema for column: %column;.
Causa: La precisión y la escala del número se analizaron, pero no se proporcionó dicha información.
Recomendación: El origen no devuelve la información de precisión y escala correcta. Consulte la información en la columna con el problema.
Código de error: ParquetInvalidDecimalPrecisionScale
Mensaje:
Invalid Decimal Precision or Scale. Precision: %precision; Scale: %scale;.
Causa: el esquema no es válido.
Recomendación: Compruebe la precisión y la escala de la columna con el problema.
Código de error: ParquetColumnNotFound
Mensaje:
Column %column; does not exist in Parquet file.
Causa: El esquema de origen no coincide con el esquema de receptor.
Recomendación: Compruebe las asignaciones de la actividad. Asegúrese de que la columna de origen se pueda asignar a la columna de receptor correcta.
Código de error: ParquetInvalidDataFormat
Mensaje:
Incorrect format of %srcValue; for converting to %dstType;.
Causa: Los datos no se pueden convertir al tipo especificado en mappings.source.
Recomendación: Vuelva a comprobar los datos de origen o especifique el tipo de datos correcto para esta columna en la asignación de columnas de la actividad de copia. Para obtener más información, vea Formatos de archivo y códecs de compresión que admite la actividad de copia.
Código de error: ParquetDataCountNotMatchColumnCount
Mensaje:
The data count in a row '%sourceColumnCount;' does not match the column count '%sinkColumnCount;' in given schema.
Causa: Una desigualdad entre el número de columnas de origen y el número de columnas de receptor.
Recomendación: Vuelva a comprobar que el número de columnas de origen sea igual al número de columnas de receptor en "mapping".
Código de error: ParquetDataTypeNotMatchColumnType
Mensaje:
The data type %srcType; is not match given column type %dstType; at column '%columnIndex;'.
Causa: Los datos del origen no se pueden convertir al tipo que se define en el receptor.
Recomendación: Especifique un tipo correcto en mapping.sink.
Código de error: ParquetBridgeInvalidData
Mensaje:
%message;
Causa: El valor de los datos ha superado el límite.
Recomendación: Vuelva a intentar la operación. Si el problema persiste, póngase en contacto con nosotros.
Código de error: ParquetUnsupportedInterpretation
Mensaje:
The given interpretation '%interpretation;' of Parquet format is not supported.
Causa: Este escenario no se admite.
Recomendación: El valor de "ParquetInterpretFor" no debe ser "sparkSql".
Código de error: ParquetUnsupportFileLevelCompressionOption
Mensaje:
File level compression is not supported for Parquet.
Causa: Este escenario no se admite.
Recomendación: Quite "CompressionType" en la carga.
Código de error: UserErrorJniException
Mensaje:
Cannot create JVM: JNI return code [-6][JNI call failed: Invalid arguments.]
Causa: No se puede crear una Máquina virtual Java (JVM) porque se han establecido algunos argumentos no válidos (globales).
Recomendación: Inicie sesión en la máquina que hospeda cada nodo del entorno de ejecución de integración autohospedado. Asegúrese de que la variable del sistema esté configurada correctamente, como se indica a continuación:
_JAVA_OPTIONS "-Xms256m -Xmx16g" with memory bigger than 8 G
. Reinicie todos los nodos del entorno de ejecución de integración y vuelva a ejecutar la canalización.
Desbordamiento aritmético
Síntomas: Ha aparecido un mensaje de error al copiar los archivos de Parquet:
Message = Arithmetic Overflow., Source = Microsoft.DataTransfer.Common
Causa: Actualmente solo se admite el decimal de precisión <= 38 y una longitud de la parte entera <= 20 al copiar archivos de Oracle en Parquet.
Solución: Como solución alternativa, puede convertir en VARCHAR2 cualquier columna que tenga este problema.
Ninguna constante de enumeración
Síntomas: Ha aparecido un mensaje de error al copiar datos en formato Parquet:
java.lang.IllegalArgumentException:field ended by ';'
o:java.lang.IllegalArgumentException:No enum constant org.apache.parquet.schema.OriginalType.test
.Causa:
El problema puede deberse a espacios en blanco o caracteres especiales no admitidos (como ,;{}()\n\t=) en el nombre de la columna, ya que Parquet no admite este formato.
Por ejemplo, un nombre de columna como contoso(test) analizará el tipo entre corchetes a partir del código
Tokenizer st = new Tokenizer(schemaString, " ;{}()\n\t");
. El error se produce porque no hay ningún tipo "test".Para comprobar los tipos admitidos, vaya al sitio apache/parquet-mr de GitHub.
Solución:
Vuelva a comprobar que:
- Haya espacios en blanco en el nombre de la columna de receptor.
- La primera fila con espacios en blanco se use como nombre de columna.
- Se admita el tipo OriginalType. Intente evitar el uso de estos caracteres especiales:
,;{}()\n\t=
.
Código de error: ParquetDateTimeExceedLimit
Mensaje:
The Ticks value '%ticks;' for the datetime column must be between valid datetime ticks range -621355968000000000 and 2534022144000000000.
Causa: Si el valor datetime es "0001-01-01 00:00:00"', podría deberse a la diferencia entre el calendario Juliano y el calendario Gregoriano. Para obtener más detalles, vea Diferencia entre los calendarios juliano y gregoriano proléptico.
Resolución: compruebe el valor de los tics y evite usar el valor datetime "0001-01-01 00:00:00".
Código de error: ParquetInvalidColumnName
Mensaje:
The column name is invalid. Column name cannot contain these character:[,;{}()\n\t=]
Causa: el nombre de columna contiene caracteres no válidos.
Resolución: agregue o modifique la asignación de columnas para que el nombre de la columna de receptor sea válido.
El archivo creado por la actividad de copia de datos extrae una tabla que contiene una columna varbinary (max).
Síntomas: el archivo Parquet creado por la actividad de copia de datos extrae una tabla que contiene una columna varbinary (max).
Causa: este problema se debe al error de la biblioteca Parquet-mr al leer una columna grande.
Resolución: Intente generar archivos más pequeños (tamaño < 1G) con una limitación de 1000 filas por archivo.
Contenido relacionado
Para obtener ayuda para solucionar problemas, pruebe estos recursos: