langchain_community.utilities.spark_sql.SparkSQL

class langchain_community.utilities.spark_sql.SparkSQL(spark_session: Optional[SparkSession] = None, catalog: Optional[str] = None, schema: Optional[str] = None, ignore_tables: Optional[List[str]] = None, include_tables: Optional[List[str]] = None, sample_rows_in_table_info: int = 3)[source]

SparkSQL 是用于与 Spark SQL 交互的工具类。

初始化 SparkSQL 对象。

参数
  • spark_session (可选SparkSession 对象) – 一个 SparkSession 对象。如果不提供,将创建一个。

  • catalog (可选str) – 要使用的目录。如果不提供,将使用默认目录。

  • schema (可选str) – 要使用的架构。如果不提供,将使用默认架构。

  • ignore_tables (可选List[str]) – 要忽略的表列表。如果不提供,将使用所有表。

  • include_tables (可选List[str]) – 要包含的表列表。如果不提供,将使用所有表。

  • sample_rows_in_table_info (int) – 包含在表信息中的行数。默认为 3。

方法

__init__([spark_session, catalog, schema, ...])

初始化 SparkSQL 对象。

from_uri(database_uri[, engine_args])

通过 Spark Connect 创建远程 Spark Session。

get_table_info([表名列表])

get_table_info_no_throw([表名列表])

获取指定表的信息。

get_usable_table_names()

获取可用表名列表。

run(command[, fetch])

run_no_throw(command[, fetch])

执行一个SQL命令,返回结果的字符串表示。

__init__(spark_session: Optional[SparkSession] = None, catalog: Optional[str] = None, schema: Optional[str] = None, ignore_tables: Optional[列表[str]] = None, include_tables: Optional[列表[str]] = None, sample_rows_in_table_info: int = 3)[source]

初始化 SparkSQL 对象。

参数
  • spark_session (可选SparkSession 对象) – 一个 SparkSession 对象。如果不提供,将创建一个。

  • catalog (可选str) – 要使用的目录。如果不提供,将使用默认目录。

  • schema (可选str) – 要使用的架构。如果不提供,将使用默认架构。

  • ignore_tables (可选List[str]) – 要忽略的表列表。如果不提供,将使用所有表。

  • include_tables (可选List[str]) – 要包含的表列表。如果不提供,将使用所有表。

  • sample_rows_in_table_info (int) – 包含在表信息中的行数。默认为 3。

classmethod from_uri(database_uri: str, engine_args: Optional[dict] = None, **kwargs: Any) SparkSQL[source]

通过Spark连接创建远程Spark会话。例如:SparkSQL.from_uri(“sc://localhost:15002”)

参数
  • database_uri (str) –

  • engine_args (Optional[dict]) –

  • kwargs (Any) –

返回类型

SparkSQL

get_table_info(table_names: Optional[List[str]] = None) str[source]
参数

table_names (Optional[List[str]]) –

返回类型

str

get_table_info_no_throw(table_names: Optional[List[str]] = None) str[source]

获取指定表的信息。

遵循2022年Rajkumar等人指定的最佳实践(https://arxiv.org/abs/2204.00498

如果设置了sample_rows_in_table_info,则将在每个表描述中附加指定数量的样本行。这可以提高性能,如论文所示。

参数

table_names (Optional[List[str]]) –

返回类型

str

get_usable_table_names() Iterable[str][source]

获取可用表名列表。

返回类型

Iterable[str]

run(command: str, fetch: str = 'all') str[source]
参数
  • command (str) –

  • fetch (str) –

返回类型

str

run_no_throw(command: str, fetch: str = 'all') str[source]

执行一个SQL命令,返回结果的字符串表示。

如果语句返回行,则返回结果字符串。如果语句没有返回行,则返回空字符串。

如果语句抛出错误,则返回错误消息。

参数
  • command (str) –

  • fetch (str) –

返回类型

str

SparkSQL 的使用示例