[英]Spark, HiveContext, ThriftServer - Table persistence
我已經配置了數據 SparkStreaming。 我想為各種目標保留這些數據:
為 Tableau 公開(它需要 thriftServer,而 thriftServer 需要 hiveContext)。
有時我希望能夠更新一些數據。
HiveContext 中的數據保存在哪里? 在記憶中? 在本地磁盤上? 它是由 thriftServer 提供的嗎?
您可以選擇使用緩存在內存上的數據
your_hive_context.cacheTable("table_name")
Thrift Server 訪問包含所有表,甚至臨時表的全局上下文。
如果您緩存表 Tableau 將更快地獲得查詢結果,但您必須繼續運行 Spark Batch 應用程序。
我還沒有找到一種在不打開新 HiveContext 的情況下更新某些數據的方法。
您可以通過執行以下yourDataFrame.saveAsTable("YourTableName")
將數據幀從 spark 保存到配置單元表: yourDataFrame.saveAsTable("YourTableName")
如果要將數據插入現有表,可以使用: yourDataFrame.writer().mode(SaveMode.Append).saveAsTable("YourTableName")
這會將您的 DataFrame 保存在持久的 Hive 表中。 此表的位置將取決於hive-site.xml
中的hive-site.xml
。
默認情況下,如果您在本地進行測試,則該位置將位於您本地磁盤上的位置/user/hive/warehouse/YourTableName
如果您在 Yarn/HDFS 上將 Spark 與 Hive 一起使用,則該表將保存在 HDFS 上由 hive-site.xml 配置文件中的屬性hive.metastore.warehouse.dir
定義的位置
希望會有所幫助:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.