Spec-Zone.ru › Polars

polars.LazyFrame.sql

LazyFrame.sql(
    query: str,
    *,
    table_name: str = 'self',
) → LazyFrame

Выполняет SQL-запрос к LazyFrame.

движок:Потоковая обработка

Добавлено в версии 0.20.23.

Предупреждение

Эта функциональность считается нестабильной, хотя близка к тому, чтобы считаться стабильной. Она может быть изменена в любой момент без того, чтобы это считалось нарушением обратной совместимости.

Параметры:
query

SQL-запрос для выполнения.

table_name

При необходимости задайте явное имя таблицы, представляющей текущий фрейм (по умолчанию — «self»).

См. также

SQLContext

Примечания

  • Текущий 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 │
└─────┴───────────┴─────┴───────┘

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API