0
我是新來的spark。我們試圖使用Hive JDBC訪問由Spark的RDD註冊的臨時表。我們可以通過執行代碼獲得RDD首次工作如下:Spark DataFrame.registerTempTable不更新jdbc配置單元中的臨時表
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命令行中運行「Table1中的select count(*)」會得到相同的數字)。代碼如下:
DataFrame tempDT = currentDT.unionAll(newDT);
HiveContext hc = HiveContextManager.getInstance();
hc.uncacheTable("Table1");
tempDT.registerTempTable("Table1");
hc.cacheTable("Table1");
任何人有什麼想法?請幫忙。非常感謝。
你是如何解決它的? – user1158559