Spark SQL 版本的 EXEC()

Posted

技术标签:

【中文标题】Spark SQL 版本的 EXEC()【英文标题】:Spark SQL version of EXEC() 【发布时间】:2015-12-11 10:04:22 【问题描述】:

有人知道在 Spark SQL 中执行如下字符串变量的方法吗?

INSERT TableA (Col1,Col2) SELECT Col1,Col2 FROM TableB

我明白我显然可以直接写这个语句。但是,我使用的是工作流引擎,其中我的 Insert/Select 语句位于 String 变量中。如果没有,我想我应该使用 spark_submit。我一直在寻找其他选择。

【问题讨论】:

【参考方案1】:

我不确定您所处的环境。如果这是 Spark 应用程序或 Spark shell,您始终以字符串形式提供查询:

val query = "INSERT TableA (Col1,Col2) SELECT Col1,Col2 FROM TableB"
sqlContext.sql(query)

(见http://spark.apache.org/docs/latest/sql-programming-guide.html#running-sql-queries-programmatically。)

【讨论】:

【参考方案2】:

Spark Sql 也支持 Hive 查询

insert overwrite table usautomobiles select * from sourcedata

通过这个link

【讨论】:

这如何解决执行存储在变量中的查询的问题?

以上是关于Spark SQL 版本的 EXEC()的主要内容,如果未能解决你的问题,请参考以下文章

相同查询的 Spark sql 版本不起作用,而普通 sql 查询则起作用

如何使用Spark SQL 的JDBC server

DataFrame编程模型初谈与Spark SQL

spark sql metastore 配置 mysql

cdh6.x 集成spark-sql

cdh6.x 集成spark-sql