Create more user friendly aliases from `col`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
El issue identifica col(...) y .alias() como los puntos de entrada relevantes de Python; el ejemplo muestra AVG(?table?.has_parking) como la salida no deseada. Empieza localizando su implementación y cualquier prueba existente; se considera terminado cuando se elimina el ?table? predeterminado, mientras que los alias explícitos como Area y Percentage of buildings with parking siguen funcionando.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
This is a user enhancement request to make the python interface remove the default ?table? on columns.
Describe the solution you'd like
I have not yet reviewed the applicable code to offer a best solution yet. I'm adding this feature request to track.
Describe alternatives you've considered
User adds an .alias() command as below, which may be tedious.
Additional context
See the below example from @datapythonista that includes the desired use case
import datafusion
from datafusion import col, lit, functions as f
import pyarrow
# something like this would be implemented internally, so users can call `datafusion.read_*`
def _read_parquet(*args, **kwargs):
ctx = datafusion.SessionContext()
return ctx.read_parquet(*args, **kwargs)
datafusion.read_parquet = _read_parquet # creating an alias of `read_*` functions so users don't need to know about `SessionContext` when the defaults are fine
df = (datafusion.read_parquet("buildings.parquet")
.filter( # `.filter()` accepting multiple conditions (which will be an AND) instead of having to use `&` with its operator precedence problems
col("is_offplan") == False,
col("rooms") >= 2, # `.lit(2)` not being required, and Python literals working with operators
)
.aggregate(
[col("area_name_en")],
[f.mean(col("has_parking").cast(float))], # `.cast()` accepting Python types, which would be internally converted to the PyArrow equivalent
)
.select(
col("area_name_en").alias("Area"),
col("AVG(has_parking)").alias("Percentage of buildings with parking"), # removing the default `?table?` in column names, the column name was "AVG(?table?.has_parking)"
)
)
- Lenguaje dominante
- Python
- Estrellas
- 605
- Forks
- 176
- Merge medio
- 1 d 23 h
- PR fusionados (30 d)
- 8
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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/datafusion-python
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
apache/datafusion-python#1757 ·
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
apache/datafusion-python#1726 ·
-
Dificultad 2/5 Medio día Aptitud para principiantes 88/100
apache/datafusion-python#1691 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/datafusion-python#1644 ·
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
apache/datafusion-python#1737 ·
Todos los issues de apache/datafusion-python
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
learningequality/ricecooker#747 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
BSData/horus-heresy-3rd-edition#3171 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
run-llama/llama_index#23199 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
KhronosGroup/glTF-Blender-IO#2769 ·