SparkSQL#

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

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

初始化一个SparkSQL对象。

Parameters:
  • spark_session (可选[SparkSession]) – 一个 SparkSession 对象。 如果未提供,将创建一个。

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

  • schema (Optional[str]) – 要使用的模式。 如果未提供,将使用默认模式。

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

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

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

方法

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

初始化一个SparkSQL对象。

from_uri(database_uri[, engine_args])

通过Spark连接创建远程Spark会话。

get_table_info([table_names])

get_table_info_no_throw([table_names])

获取指定表的信息。

get_usable_table_names()

获取可用表的名称。

run(command[, fetch])

run_no_throw(command[, fetch])

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

__init__(spark_session: SparkSession | None = None, catalog: str | None = None, schema: str | None = None, ignore_tables: List[str] | None = None, include_tables: List[str] | None = None, sample_rows_in_table_info: int = 3)[source]#

初始化一个SparkSQL对象。

Parameters:
  • spark_session (可选[SparkSession]) – 一个 SparkSession 对象。 如果未提供,将创建一个。

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

  • schema (Optional[str]) – 要使用的模式。 如果未提供,将使用默认模式。

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

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

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

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

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

Parameters:
  • database_uri (str)

  • engine_args (dict | None)

  • kwargs (Any)

Return type:

SparkSQL

get_table_info(table_names: List[str] | None = None) str[source]#
Parameters:

table_names (List[str] | None)

Return type:

字符串

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

获取有关指定表的信息。

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

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

Parameters:

table_names (列表[字符串] | )

Return type:

字符串

get_usable_table_names() Iterable[str][source]#

获取可用表的名称。

Return type:

可迭代[str]

run(command: str, fetch: str = 'all') str[source]#
Parameters:
  • command (str)

  • fetch (str)

Return type:

字符串

run_no_throw(command: str, fetch: str = 'all') str[来源]#

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

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

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

Parameters:
  • command (str)

  • fetch (str)

Return type:

字符串

使用 SparkSQL 的示例