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对象。

如果未提供,将会创建一个。

catalog: 要使用的目录。

如果未提供,将使用默认目录。

schema: 要使用的模式。

如果未提供,将使用默认模式。

ignore_tables: 要忽略的表的列表。

如果未提供,将使用所有表。

include_tables: 要包含的表的列表。

如果未提供,将使用所有表。

sample_rows_in_table_info: 在表信息中包含的行数。

默认为3。

Methods

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

初始化一个SparkSQL对象。

from_uri(database_uri[, engine_args])

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

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命令并返回表示结果的字符串。

Parameters
  • spark_session (Optional[SparkSession]) –

  • catalog (Optional[str]) –

  • schema (Optional[str]) –

  • ignore_tables (Optional[List[str]]) –

  • include_tables (Optional[List[str]]) –

  • sample_rows_in_table_info (int) –

__init__(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_session: 一个SparkSession对象。

如果未提供,将会创建一个。

catalog: 要使用的目录。

如果未提供,将使用默认目录。

schema: 要使用的模式。

如果未提供,将使用默认模式。

ignore_tables: 要忽略的表的列表。

如果未提供,将使用所有表。

include_tables: 要包含的表的列表。

如果未提供,将使用所有表。

sample_rows_in_table_info: 在表信息中包含的行数。

默认为3。

Parameters
  • spark_session (Optional[SparkSession]) –

  • catalog (Optional[str]) –

  • schema (Optional[str]) –

  • ignore_tables (Optional[List[str]]) –

  • include_tables (Optional[List[str]]) –

  • sample_rows_in_table_info (int) –

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

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

Parameters
  • database_uri (str) –

  • engine_args (Optional[dict]) –

  • kwargs (Any) –

Return type

SparkSQL

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

table_names (Optional[List[str]]) –

Return type

str

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

获取指定表的信息。

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

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

Parameters

table_names (Optional[List[str]]) –

Return type

str

get_usable_table_names() Iterable[str][source]

获取可用表的名称。

Return type

Iterable[str]

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

  • fetch (str) –

Return type

str

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

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

如果语句返回行,则返回结果的字符串。 如果语句未返回行,则返回空字符串。

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

Parameters
  • command (str) –

  • fetch (str) –

Return type

str

Examples using SparkSQL