在Spark1.6中向数据表注册数据帧时如何指定数据库

Ric*_*mer 1 apache-spark pyspark spark-dataframe

我正在研究一个简单的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")
Run Code Online (Sandbox Code Playgroud)

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

phi*_*ert 5

由任何数据库创建registerTempTable或createOrReplaceTempView与之无关的临时表/视图.它只是根据数据框的创建方式创建一个包含查询计划的数据框视图.

来自Apache Spark的Dataset.scala

本地临时视图是会话范围的.它的生命周期是创建它的会话的生命周期,即它会在会话终止时自动删除.它不依赖于任何数据库,即我们不能用于db1.view1引用本地临时视图.

我强调的是.