我正在尝试使用spark在配置单元表上运行查询。 我已经关注了很多互联网上的文章,但是没有成功。 我已经将hive-site.xml文件移动到了触发位置。
请您解释一下该怎么做?我正在使用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”文件夹,其中包含“镶木地板”格式的数据。
但是当我去蜂巢并检查是否创建了表时,我看不到任何表名为“ hosdata”。
所以我运行以下命令。
hosService.write.mode("overwrite").saveAsTable("hosData")
sqlContext.sql("show tables").show
显示下面的结果
+--------------------+-----------+
| tableName|isTemporary|
+--------------------+-----------+
| hosdata| false|
+--------------------+-----------+
但是再次,当我签入蜂巢时,我看不到表'hosdata'
有人可以让我知道我错过了哪一步吗?
答案 0 :(得分:0)
您可以通过多种方式使用Spark查询Hive。
性能调整绝对是一个重要的方面,因为您可以使用广播和其他方法来更快地执行。
希望这会有所帮助。