Validation of timestamp with ISO8601 pattern with microseconds fails
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- scala, spark
- Área
- data-engineering, testing
Línea de trabajo
Usa el reproductor en SchemaValidationSuite como primera comprobación y luego sigue SchemaValidator.validateSchema y su punto de entrada de validación del patrón de marca de tiempo. Compara los tres patrones y conserva la aceptación esperada de yyyy-MM-dd'T'HH:mm:ss.SSSXXX; listo cuando la prueba de regresión pase sin romper los otros dos casos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
The following timestamp pattern fails to be validated: yyyy-MM-dd'T'HH:mm:ss.SSSXXX. This is a pattern defined by ISO8601. However, it does validate when removing either the 'T' or the fractional second part (see test-cases below)
To Reproduce
Steps to reproduce the behavior OR commands run:
- Add the following test to
SchemaValidationSuiteand execute it
test("Timestamp with fractional seconds should be validated") {
val schema = StructType(
Array(
StructField("id", LongType),
StructField("name", StringType),
StructField("timestamp_without_fraction_ok", TimestampType, nullable = false, Metadata.fromJson(""" { "pattern": "yyyy-MM-dd'T'HH:mm:ssXXX", "default": "2025-01-08T13:07:39+00:00" } """.stripMargin)),
StructField("timestamp_with_fraction_without_T_ok", TimestampType, nullable = false, Metadata.fromJson(""" { "pattern": "yyyy-MM-dd HH:mm:ss.SSSXXX", "default": "2025-01-08 13:07:39.490+00:00" } """.stripMargin)),
StructField("timestamp_with_fraction_and_T_nok", TimestampType, nullable = false, Metadata.fromJson(""" { "pattern": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", "default": "2025-01-08T13:07:39.490+00:00" } """.stripMargin))
)
)
val failures = SchemaValidator.validateSchema(schema)(CommonTypeDefaults)
if (failures.nonEmpty) {
logger.error("Validation errors:")
logger.error(failures.mkString("\n"))
}
assert(failures.isEmpty)
}
- See the test failing with
Unparseable date: "2025-01-08T13:07:39.490:00
Expected behavior
The pattern with 'T' and fractional seconds should be successfully validated.
Use-case
Only for internal development / testing
- Lenguaje dominante
- Scala
- Estrellas
- 7
- Forks
- 2
- Merge medio
- 8 d 8 h
- PR fusionados (30 d)
- 3
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de AbsaOSS/spark-data-standardization
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Standardization can fail with `Task not serializable` when casting to date is requestedPosiblemente ocupada @qwerty44-U la tomó hace 124 días. Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Todos los issues de AbsaOSS/spark-data-standardization
Issues similares
-
? - Needs Triage audit_4.2.0 feature request test
Dificultad 2/5 1-3 horas Aptitud para principiantes 87/100
NVIDIA/cudf-spark#16614 ·
Los mantenedores suelen responder en 1 día
-
requires-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
apache/datafusion-comet#7240 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
apache/pekko-persistence-r2dbc#527 ·
Los mantenedores suelen responder en 1 día
-
area:verification status:backlog
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
KD5UJC-XYZ/scarab#459 ·
Los mantenedores suelen responder en 1 día
-
OpenAPI scan predicates document `bytes`, but the node reads `value`Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. AbiertoA-api C-bug S-ready-for-human
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
ergoplatform/ergo#2838 ·
Los mantenedores suelen responder en 2 días