我有一个极地数据框架:
df = pl.DataFrame({'schema_name': ['test_schema', 'test_schema_2'],
'table_name': ['test_table', 'test_table_2'],
'column_name': ['test_column, test_column_2','test_column']})
schema_name | table_name | column_name | testrongchema | test_table | test_column, test_column_2 |
---|---|---|
testrongchema_2 | test_table_2 | test_column |
另一个选择是使用polars.format
来创建字符串。例如:
date_field_value_max_query = (
'''select {} as schema_name,
{} as table_name,
greatest({})
from {}.{}
group by 1, 2
'''
)
(
df
.with_columns([
pl.format(date_field_value_max_query,
'schema_name',
'table_name',
'column_name',
'schema_name',
'table_name')
])
)
shape: (2, 4)
┌───────────────┬──────────────┬────────────────────────────┬─────────────────────────────────────────────┐
│ schema_name ┆ table_name ┆ column_name ┆ literal │
│ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ str ┆ str ┆ str │
╞═══════════════╪══════════════╪════════════════════════════╪═════════════════════════════════════════════╡
│ test_schema ┆ test_table ┆ test_column, test_column_2 ┆ select test_schema as schema_name, │
│ ┆ ┆ ┆ test_table as table_name, │
│ ┆ ┆ ┆ greatest(test_column, test_column_2) │
│ ┆ ┆ ┆ from test_schema.test_table │
│ ┆ ┆ ┆ group by 1, 2 │
│ ┆ ┆ ┆ │
│ ┆ ┆ ┆ │
│ test_schema_2 ┆ test_table_2 ┆ test_column ┆ select test_schema_2 as schema_name, │
│ ┆ ┆ ┆ test_table_2 as table_name, │
│ ┆ ┆ ┆ greatest(test_column) │
│ ┆ ┆ ┆ from test_schema_2.test_table_2 │
│ ┆ ┆ ┆ group by 1, 2 │
│ ┆ ┆ ┆ │
│ ┆ ┆ ┆ │
└───────────────┴──────────────┴────────────────────────────┴─────────────────────────────────────────────┘