我已经在干净的Ubuntu实例上安装了Spark 2.4.0。Spark DataFrames正常工作,但是当我尝试使用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()
与此错误有关的大多数修复程序是指安装蜂巢的环境。如果我想针对Spark中的数据范围使用SQL语句,或者我缺少其他内容,是否需要Hive?
跟进我的修复程序。在我的情况下,问题是Java 11是我系统的默认值。我将java 8设置为默认metastore_db开始工作。
是的,我们可以在不安装Hive的情况下在Spark上运行Spark SQL查询我们的查询速度更快。火花蜂巢上的Hive使用Hive Metastore进行蜂巢查询。同时,可以通过Spark执行SQL查询。如果使用SPARK来执行简单的SQL查询或与Hive Metastore Server连接,则将在用户Home Folder下在执行查询的用户Home Folder下创建嵌入式Derby数据库和具有名称 metastore_db 的新文件夹。/p>