跳到内容

创建

在 Polars 中,SQLContext 提供了一种使用 SQL 语法对 LazyFramesDataFrames 执行 SQL 语句的方法。SQLContext 可以执行的 SQL 语句之一是 CREATE TABLE 语句,它用于创建新表。

Polars 中 CREATE TABLE 语句的语法如下

CREATE TABLE table_name
AS
SELECT ...

在此语法中,table_name 是将要创建的新表的名称,SELECT ... 是一个 SELECT 语句,用于定义将插入到表中的数据。

以下是 Polars 中 CREATE TABLE 语句的使用示例

register · execute

data = {"name": ["Alice", "Bob", "Charlie", "David"], "age": [25, 30, 35, 40]}
df = pl.LazyFrame(data)

ctx = pl.SQLContext(my_table=df, eager=True)

result = ctx.execute(
    """
    CREATE TABLE older_people
    AS
    SELECT * FROM my_table WHERE age > 30
"""
)

print(ctx.execute("SELECT * FROM older_people"))

shape: (2, 2)
┌─────────┬─────┐
│ name    ┆ age │
│ ---     ┆ --- │
│ str     ┆ i64 │
╞═════════╪═════╡
│ Charlie ┆ 35  │
│ David   ┆ 40  │
└─────────┴─────┘

在此示例中,我们使用 SQLContextexecute() 方法执行 CREATE TABLE 语句,该语句根据一个 SELECT 语句创建一个名为 older_people 的新表,该 SELECT 语句从 my_table DataFrame 中选择 age 列大于 30 的所有行。

注意

请注意,CREATE TABLE 语句的结果不是表本身。该表已在 SQLContext 中注册。如果您想将表转回 DataFrame,可以使用 SELECT * FROM ... 语句