取消
顯示的結果
而不是尋找
你的意思是:

之間的區別是什麼registerTempTable()和saveAsTable () ?

cfregly
貢獻者
15日回複15

cfregly
貢獻者

registerTempTable ()

registerTempTable()創建一個內存中的表的作用範圍是整個集群的創建。數據存儲使用蜂巢的高度優化,內存中的柱狀格式。

這是重要的儀表板儀表板(即運行在不同的集群。單一儀表板集群)將無法獲得臨時表登記在另一個集群。

重新注冊一個臨時表的同名(使用覆蓋= true),但與新數據導致原子內存指針切換新數據是完美地更新和立即accessble查詢(即。從儀表板)。

saveAsTable ()

saveAsTable()創建了一個永久性的,物理表存儲在S3使用鑲花格式。這張桌子都可以訪問所有集群包括儀表板集群。表元數據包括文件(s)的位置存儲在蜂房metastore。

重新創建一個永久的同名的表(使用覆蓋= true),但新數據導致要刪除舊數據,新的數據保存在相同的底層文件S3。這可能會導致時刻數據不可用S3的最終一致性模型。有持續改進以減少停機時間,然而。

ClaudioBeretta
新的貢獻者二世

我引發的極端的初學者,所以我可能缺少大的東西。使用saveAsTable(),我如何指定在哪裏存儲在S3中鋪文件(s) ?SaveAsTable隻接受一個表名,並將數據保存在/ user /蜂巢dbfs在這個位置/倉庫/。我已經安裝與dbutils.fs S3。掛載在/ mnt /湖。謝謝

匿名
不適用

@Claudio伯萊塔,你可能會尋找

saveAsParquet ()
操作。你可以找到更多關於SchemaRDDs的API文檔和其他操作。

一個重要的注意:

SchemaRDD
將會改變
DataFrame
在一個即將發布。

ClaudioBeretta
新的貢獻者二世

由於@Pat麥克唐納,我試圖用saveAsParquet (s“s3n: / /…”)但它早些時候抱怨“. lang。RuntimeException:不支持的數據類型TimestampType”。

關於saveAsTable()我喜歡它堅持和寄存器的數據表在同一時間。如果它可以節省S3,答案,它將成為完美的我想做什麼。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map