polars.LazyFrame.sql
-
Выполняет SQL-запрос к LazyFrame.
Добавлено в версии 0.20.23.
Предупреждение
Эта функциональность считается нестабильной, хотя близка к тому, чтобы считаться стабильной. Она может быть изменена в любой момент без того, чтобы это считалось нарушением обратной совместимости.
- Параметры:
-
- query
-
SQL-запрос для выполнения.
- table_name
-
При необходимости задайте явное имя таблицы, представляющей текущий фрейм (по умолчанию — «self»).
См. также
Примечания
- Текущий LazyFrame автоматически регистрируется как таблица в SQLContext под именем «self». Чтобы получить доступ к DataFrames и LazyFrames, доступным в текущих глобальных переменных, используйте функцию верхнего уровня
pl.sql. - Для более гибкого управления регистрацией и выполнением используйте объект
SQLContext.
Примеры
>>> lf1 = pl.LazyFrame({"a": [1, 2, 3], "b": [6, 7, 8], "c": ["z", "y", "x"]}) >>> lf2 = pl.LazyFrame({"a": [3, 2, 1], "d": [125, -654, 888]})Выполнение запроса к LazyFrame с помощью SQL:
>>> lf1.sql("SELECT c, b FROM self WHERE a > 1").collect() shape: (2, 2) ┌─────┬─────┐ │ c ┆ b │ │ --- ┆ --- │ │ str ┆ i64 │ ╞═════╪═════╡ │ y ┆ 7 │ │ x ┆ 8 │ └─────┴─────┘Применение SQL-преобразований (переименование «self» в «frame»), а затем фильтрация средствами Polars (можно свободно комбинировать SQL-операции и нативные операции):
>>> lf1.sql( ... query=''' ... SELECT ... a, ... (a % 2 == 0) AS a_is_even, ... (b::float4 / 2) AS "b/2", ... CONCAT_WS(':', c, c, c) AS c_c_c ... FROM frame ... ORDER BY a ... ''', ... table_name="frame", ... ).filter(~pl.col("c_c_c").str.starts_with("x")).collect() shape: (2, 4) ┌─────┬───────────┬─────┬───────┐ │ a ┆ a_is_even ┆ b/2 ┆ c_c_c │ │ --- ┆ --- ┆ --- ┆ --- │ │ i64 ┆ bool ┆ f32 ┆ str │ ╞═════╪═══════════╪═════╪═══════╡ │ 1 ┆ false ┆ 3.0 ┆ z:z:z │ │ 2 ┆ true ┆ 3.5 ┆ y:y:y │ └─────┴───────────┴─────┴───────┘
LazyFrame.sql(
query: str,
*,
table_name: str = 'self',
) → LazyFrame
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/lazyframe/api/polars.LazyFrame.sql.html