如何使用Airflow SparkSQLOperator?

时间:2017-12-12 19:54:07

标签: apache-spark airflow

我想在Airflow中使用Spark SQL运行查询,看起来SparkSQLOperator非常适合这种情况(https://github.com/apache/incubator-airflow/blob/master/airflow/contrib/operators/spark_sql_operator.py) 但是,我无法弄清楚必须如何配置连接。

在DB Visualizer中,我可以使用:

连接到Hive数据库
driver : jdbc
database url : jdbc:hive2://myserver.com:10000/default
database userid : me
database password : mypassword

将这些设置应用于spark_sql_default连接会给我:

  

输入[2017-12-12 11:35:33,774] {models.py:1462}错误 - 无法执行   在hive2://myserver.com:10000 /默认。错误代码是:1。输出:,   标准错误:

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Spark并不是一个数据库,因此您可以像配置常规Spark作业一样配置Spark连接,而不是像以前那样使用类似JDBC的参数。

如果你看一下运营商的签名:

def __init__(self,
             sql,
             conf=None,
             conn_id='spark_sql_default',
             executor_cores=None,
             executor_memory=None,
             keytab=None,
             master='yarn',
             name='default-name',
             num_executors=None,
             yarn_queue='default',
             *args,
             **kwargs)

您需要创建一个指定Spark master的连接(请参阅models.Connection),该连接将是' yarn',' local [x]'或者& #39;火花://主机名:端口&#39 ;.这应该是真的,因为它们会为你默认其余的,它可能由底层的Spark配置处理。

您的SQL或HQL代码/脚本可以传递给第一个参数。