airflow.providers.apache.spark.hooks.spark_jdbc
¶
模块内容¶
类¶
扩展 SparkSubmitHook,用于使用 Apache Spark 执行与基于 JDBC 的数据库之间的数据传输。 |
- class airflow.providers.apache.spark.hooks.spark_jdbc.SparkJDBCHook(spark_app_name='airflow-spark-jdbc', spark_conn_id=default_conn_name, spark_conf=None, spark_py_files=None, spark_files=None, spark_jars=None, num_executors=None, executor_cores=None, executor_memory=None, driver_memory=None, verbose=False, principal=None, keytab=None, cmd_type='spark_to_jdbc', jdbc_table=None, jdbc_conn_id='jdbc-default', jdbc_driver=None, metastore_table=None, jdbc_truncate=False, save_mode=None, save_format=None, batch_size=None, fetch_size=None, num_partitions=None, partition_column=None, lower_bound=None, upper_bound=None, create_table_column_types=None, *args, use_krb5ccache=False, **kwargs)[源代码]¶
基类:
airflow.providers.apache.spark.hooks.spark_submit.SparkSubmitHook
扩展 SparkSubmitHook,用于使用 Apache Spark 执行与基于 JDBC 的数据库之间的数据传输。
- 参数
spark_app_name (str) – 作业名称(默认为 airflow-spark-jdbc)
spark_conn_id (str) – Airflow 管理中配置的 spark 连接 ID
spark_py_files (str | None) – 使用的其他 Python 文件(.zip、.egg 或 .py)
spark_files (str | None) – 要上传到运行作业的容器的其他文件
spark_jars (str | None) – 要上传并添加到驱动程序和执行程序类路径的其他 JAR 文件
num_executors (int | None) – 要运行的执行程序数量。应设置此值以管理与 JDBC 数据库建立的连接数
executor_cores (int | None) – 每个执行程序的内核数
executor_memory (str | None) – 每个执行程序的内存(例如 1000M、2G)
driver_memory (str | None) – 分配给驱动程序的内存(例如 1000M、2G)
verbose (bool) – 是否将 verbose 标志传递给 spark-submit 以进行调试
keytab (str | None) – 包含 keytab 的文件的完整路径
principal (str | None) – 用于 keytab 的 kerberos principal 的名称
cmd_type (str) – 数据应如何流动。2 个可能的值:spark_to_jdbc:Spark 从元存储写入到 JDBC 的数据 jdbc_to_spark:Spark 从 JDBC 写入到元存储的数据
jdbc_table (str | None) – JDBC 表的名称
jdbc_conn_id (str) – 用于连接到 JDBC 数据库的连接 ID
jdbc_driver (str | None) – 用于 JDBC 连接的 JDBC 驱动程序的名称。此驱动程序(通常是 JAR 文件)应在 “jars” 参数中传递
metastore_table (str | None) – 元存储表的名称
jdbc_truncate (bool) –(仅限 spark_to_jdbc)Spark 是否应截断或删除并重新创建 JDBC 表。仅当 “save_mode” 设置为 Overwrite 时,此设置才生效。此外,如果架构不同,Spark 无法截断,并且将删除并重新创建
save_mode (str | None) – 要使用的 Spark 保存模式(例如,覆盖、追加等)
save_format (str | None) –(仅限 jdbc_to_spark)要使用的 Spark 保存格式(例如 parquet)
batch_size (int | None) –(仅限 spark_to_jdbc)每次往返 JDBC 数据库时要插入的批次大小。默认为 1000
fetch_size (int | None) –(仅限 jdbc_to_spark)每次从 JDBC 数据库往返时要获取的批次大小。默认值取决于 JDBC 驱动程序
num_partitions (int | None) – Spark 可以同时使用的最大分区数,适用于 spark_to_jdbc 和 jdbc_to_spark 操作。这也会限制可以打开的 JDBC 连接数
partition_column (str | None) – (仅限 jdbc_to_spark) 用于对 metastore 表进行分区的数字列。如果指定,还必须指定:num_partitions、lower_bound、upper_bound
lower_bound (str | None) – (仅限 jdbc_to_spark) 要提取的数字分区列的范围下限。如果指定,还必须指定:num_partitions、partition_column、upper_bound
upper_bound (str | None) – (仅限 jdbc_to_spark) 要提取的数字分区列的范围上限。如果指定,还必须指定:num_partitions、partition_column、lower_bound
create_table_column_types (str | None) – (仅限 spark_to_jdbc) 创建表时要使用的数据库列数据类型,而不是默认类型。数据类型信息应以与 CREATE TABLE 列语法相同的格式指定(例如:“name CHAR(64), comments VARCHAR(1024)”)。指定类型应为有效的 spark sql 数据类型。
use_krb5ccache (bool) – 如果为 True,则配置 Spark 使用票证缓存而不是依赖 keytab 进行 Kerberos 登录