[PIPELINES] Support partition transforms in SDP partition_cols
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Área
- data-engineering, databases
Línea de trabajo
Comienza en DatasetManager.materializeTable, donde partition_cols actualmente se mapean mediante Expressions.identity. Lee la lógica de análisis existente de Catalyst utilizada para las transformaciones SQL PARTITIONED BY y, después, verifica el comportamiento para columnas simples, months(event_time) y bucket(16, user_id). Se considera terminado cuando las transformaciones de identidad se mantienen para los nombres de columna, mientras que la sintaxis de transformación compatible produce las transformaciones V2 correspondientes.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
spark=4.1.3
iceberg=1.11.0
Problem
SDP currently treats every entry in partition_cols as an identity partition transform.
for example
@dp.materialized_view(partition_cols=["months(event_time)"])
def events():
...
causes months(event_time) to be interpreted as a column name instead of a partition transform.
Behaviour comes from DatasetManager.materializeTable where all partition cols are converted using identity
table.partitionCols.toSeq.flatten.map(Expressions.identity)
and as a result using the above partition col it just becomes identity('months(event_time)').
Expected behaviour
SDP should support the same partition transforms that Spark SQL already supports
Bare col-names (partition_col=["event_date"]) should continue producing identity(event_date)
but partition transforms should be respected, and combining partitions like
partition_cols=["country", "bucket(16, user_id)"]
should produce its corresponding V2 partition transforms.
Existing SQL support
Catalyst parses partition transform syntax for SQL PARTITIONED BY and creates corresponding V2 Transform
SDP should just reuse the existing Catalyst parsing logic and not short-circuit everything to identity transform.
- Lenguaje dominante
- Scala
- Estrellas
- 44.3k
- Forks
- 29.5k
- Merge medio
- 8 h 43 min
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la 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 apache/spark
-
[BUILD] Bump Ivy up to 2.6.0Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 2 días
-
[SQL][CONNECT] SparkConnectClient may drop metadata (auth headers) on retried/reattached RPCs if metadata is a non-list iterablePosiblemente ocupada @zainmirzaaa la tomó hace 65 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días
-
[CORE] bug report: collision of resource profile idPosiblemente ocupada @ybapat la tomó hace 90 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
apache/spark#57498 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
[BUILD] Drop oro dependencyAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
apache/spark#57209 · 7 comentarios ·
Los mantenedores suelen responder en 2 días
-
Merge spark PR script hard blocks on JIRAPosiblemente ocupada @holdenk la tomó hace 4 días. Abierto
apache/spark#59693 · 1 asignado ·
Los mantenedores suelen responder en 2 días
Todos los issues de apache/spark
Issues similares
-
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
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
llm4s (org.llm4s) is not indexedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
scalacenter/scaladex#1834 ·
-
PlatformSpecific.hasGreenThreads incorrectly returns false for JDK updates and non-GA versionsPosiblemente ocupada @hearnadam la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
zio/zio#11303 · 1 reacción · 2 asignados ·
Los mantenedores suelen responder en 1 día
-
Disabled tools can still be called by the agentPosiblemente ocupada @shaynhornik la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
apache/texera#9122 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día