我想在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。输出:, 标准错误:
有什么想法吗?
答案 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代码/脚本可以传递给第一个参数。