如何在 Spark1.6 中将数据框注册到表时指定数据库



我正在处理一个简单的Spark脚本,并在将数据放在我想要的地方以及使工作正常工作时遇到问题。 具体来说,我需要在将数据框注册到临时表时指定表的数据库。

df_del_records,df_add_records,df_exclusion_records=get_new_records(dff)
df_del_records.registerTempTable("db.update_deletes_temp_table")
df_add_records.registerTempTable("db.update_adds_temp_table")
df_exclusion_records.registerTempTable("db.exclusions_temp_table")
sqlContext.sql("insert overwrite table db.automated_quantity_updates select * from db.update_deletes_temp_table")
sqlContext.sql("insert into table db.automated_quantity_updates select * from db.update_adds_temp_table")
sqlContext.sql("insert into table db.exclusions select * from db.exclusions_temp_table")

上面的代码运行没有错误,但不产生任何结果。 删除数据库会产生结果,但这在生产中不起作用,其中必须存储临时表的数据库不是默认 Spark 使用的任何数据库。 如何在 Spark 1.6 中指定临时表在将数据 grame 注册到临时表时需要位于哪个数据库?

registerTempTablecreateOrReplaceTempView创建的临时表/视图与任何数据库无关。它只是根据数据帧的创建方式创建具有查询计划的数据帧视图。

来自Apache Spark的Dataset.scala

本地临时视图是会话范围的。它的生存期是创建它的会话的生存期,即当会话终止时,它将自动删除。它不绑定到任何数据库,即我们不能使用db1.view1来引用本地临时视图

强调由我添加。

相关内容

  • 没有找到相关文章

最新更新