apache / apache/datafusion-python
Create more user friendly aliases from `col`
- 主要言語
- Python
- スター
- 604
- フォーク
- 174
- 平均マージ
- 1日 7時間
- マージ済み PR(30日)
- 4
説明
**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)"
)
)
```
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
The issue identifies `col(...)` and `.alias()` as the relevant Python entry points, with the example showing `AVG(?table?.has_parking)` as the unwanted output. Begin by locating their implementation and any existing tests; done means the default `?table?` is removed while explicit aliases such as `Area` and `Percentage of buildings with parking` still work.
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- data
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100