我启动第一个Spark应用程序,该应用程序配置为通过以下方式连接到远程Hive Metastore DB:
INSERT INTO user (user_username, user_first, user_last, user_email)
VALUES ('$uname', '$first', '$last', '$email')
这是源代码:
.set("hive.metastore.uris", "thrift://localhost:9083")
.set("spark.sql.hive.thriftServer.singleSession", "true")
似乎将数据加载到同一metastore数据库实例内的“ global_temp”数据库中,如在日志中找到的那样:
val df = sparkSession.readStream
.format("json")
.load("gs://path/location/to/data/")
df.writeStream.queryName("dictionary")
.format("memory")
.start()
但是,当我通过beeline连接到Metastore DB时,我再也看不到字典表或global_temp数据库。怎么可能?
我尝试将默认数据库值更新为“字典”数据库,并在运行Job之前创建它,我收到此错误消息:
线程“ main” org.apache.spark.SparkException中的异常: 字典是系统保存的数据库,请重命名 现有数据库解决名称冲突,或设置不同的名称 spark.sql.globalTempDatabase的值,并启动您的Spark 再次申请。
任何知道为什么表“ dictionary”从不出现在metastore数据库上的消息吗?