无法从impala/hive/spark sql访问“spark注册表”

无法从impala/hive/spark sql访问“spark注册表”,hive,apache-spark,apache-spark-sql,Hive,Apache Spark,Apache Spark Sql,我使用scala在spark中创建了一个数据源。我有一个case类,创建了一个RDD并将其注册为表。就像spark文档中给出的示例一样 val sqlContext = new org.apache.spark.sql.SQLContext(sc) import sqlContext.createSchemaRDD case class Person(name: String, age: Int) val people = sc.textFile("examples/src/main/resou

我使用scala在spark中创建了一个数据源。我有一个case类,创建了一个RDD并将其注册为表。就像spark文档中给出的示例一样

val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.createSchemaRDD
case class Person(name: String, age: Int)
val people = sc.textFile("examples/src/main/resources/people.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt))
people.registerAsTable("people")
val teenagers = sqlContext.sql("SELECT name FROM people WHERE age >= 13 AND age <= 19")
teenagers.map(t => "Name: " + t(0)).collect().foreach(println)
但是,我无法访问hive、impala或spark sql中的表。“显示表格”命令不显示表格。关于如何实现这一点有什么想法吗


谢谢大家!

本地创建的表和配置单元元存储之间没有连接

要通过配置单元访问表,您应该以某种方式生成拼花地板文件。您的代码正常,请使用“创建表”将它们添加到配置单元元存储中。。。然后通过配置单元连接或创建配置单元上下文org.apache.spark.sql.hive.HiveContext使用它

简而言之,您应该区分本地创建的元数据与存储在metastore中的RegisterEmptable和持久配置单元元数据