Apache spark 如何使用SPARK在HIVE上进行查询?

Apache spark 如何使用SPARK在HIVE上进行查询?,apache-spark,hive,Apache Spark,Hive,我正在尝试使用spark在配置单元表上运行查询。 我关注了互联网上的很多文章,但都没有成功。 我已将hive-site.xml文件移动到spark位置 你能解释一下怎么做吗?我正在使用Spark 1.6 先谢谢你 请在下面找到我的代码 import sqlContext.implicits._ import org.apache.spark.sql val eBayText = sc.textFile("/user/cloudera/spark/servicesDemo.csv") val ho

我正在尝试使用spark在配置单元表上运行查询。 我关注了互联网上的很多文章,但都没有成功。 我已将hive-site.xml文件移动到spark位置

你能解释一下怎么做吗?我正在使用Spark 1.6

先谢谢你

请在下面找到我的代码

import sqlContext.implicits._
import org.apache.spark.sql
val eBayText = sc.textFile("/user/cloudera/spark/servicesDemo.csv")
val hospitalDataText = sc.textFile("/user/cloudera/spark/servicesDemo.csv")
val header = hospitalDataText.first()
val hospitalData = hospitalDataText.filter(a=>a!=header)
case class Services(uhid:String,locationid:String,doctorid:String)
val hData = hospitalData.map(_.split(",")).map(p=>Services(p(0),p(1),p(2)))
val hosService = hData.toDF()
hosService.write.format("parquet").mode(org.apache.spark.sql.SaveMode.Append).save("/user/hive/warehouse/hosdata")
这段代码在指定的路径上创建了“hosdata”文件夹,其中包含“parquet”格式的数据

但当我转到配置单元并检查表是否已创建时,我无法将任何表名视为“hosdata”

所以我运行下面的命令

hosService.write.mode("overwrite").saveAsTable("hosData")
sqlContext.sql("show tables").show
显示下面的结果

+--------------------+-----------+
|           tableName|isTemporary|
+--------------------+-----------+
|             hosdata|      false|
+--------------------+-----------+
但当我再次签入hive时,我看不到表“hosdata”


有人能告诉我我缺少哪一步吗?

有多种方法可以使用Spark查询蜂巢

与Hive CLI一样,您可以使用Spark SQL进行查询 Spark shell可用于运行Spark类文件,在这些文件中,您需要定义配置单元、Spark配置对象等变量。Spark Context sql方法允许您执行可能在配置单元上执行的相同查询 性能调整无疑是一个重要的方面,因为您可以使用广播和其他方法来加快执行速度


希望这有帮助。

我在上面添加了准确的代码。你能告诉我我错过了什么吗?