开发者社区> 问答> 正文

Spark-sql可以在没有安装配置单元的情况下工作吗?

我在一个的ubuntu实例上安装了spark 2.4.0。Spark数据帧工作正常但是当我尝试对数据帧使用spark.sql时,如下例所示,我收到错误“无法访问Metastore。此类不应在运行时访问”。

spark.read.json("/data/flight-data/json/2015-summary.json")
.createOrReplaceTempView("some_sql_view")

spark.sql("""SELECT DEST_COUNTRY_NAME, sum(count)
FROM some_sql_view GROUP BY DEST_COUNTRY_NAME
""").where("DEST_COUNTRY_NAME like 'S%'").where("sum(count) > 10").count()

我看到的与此错误相关的大多数修复都是指安装了hive的环境。如果我想对spark中的数据帧使用sql语句或者我缺少其他东西,是否需要配置单元?

跟进我的修复。我的问题是Java 11是我系统的默认设置。一旦我将Java 8设置为默认的metastore_db就开始工作了。

展开
收起
社区小助手 2018-12-19 17:11:50 1757 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    是的,我们可以在不安装配置单元的情况下在spark上运行spark sql查询,默认情况下,hive使用mapred作为执行引擎,我们可以配置配置单元使用spark或tez作为执行引擎来更快地执行我们的查询。Spark on hive上的Hive使用hive Metastore来运行配置单元查询。同时,sql查询可以通过spark执行。如果spark用于执行简单的sql查询或未与hive Metastore服务器连接,则它使用嵌入式derby数据库,并且将在执行查询的用户主文件夹下创建名为metastore_db的新文件夹。

    2019-07-17 23:23:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载