Spark DataFrame.registerTempTable 不会更新 jdbc 配置单元中的临时表



我是新手。我们正在尝试使用HiveJDBC来访问RDD从Spark注册的临时表。我们可以通过如下代码使RDD首次工作:

dt.registerTempTable("Table1");
dt.cache();
HiveContext hc = HiveContextManager.getInstance(); // a singlton HiveContext instance
hc.registerDataFrameAsTable(dt, "Table1");
hc.cacheTable("Table1");
dt.cache();
dt.collect();
HiveThriftServer2.startWithContext(hc);

然而,当我们收到新的RDD数据并尝试更新临时表时,我在配置单元JDBC中看不到新记录(在JDBC:hive2命令行中运行"select count(*)from Table1"会给出相同的数字)。代码如下:

DataFrame tempDT = currentDT.unionAll(newDT);           
HiveContext hc = HiveContextManager.getInstance();      
hc.uncacheTable("Table1");
tempDT.registerTempTable("Table1");
hc.cacheTable("Table1");

有人知道吗?请帮忙。非常感谢。

事实证明RegisterTempTable工作非常完美。在我们创建新DT的过程中,这是一个问题。谢谢

最新更新