簡體   English   中英

Spark、HiveContext、ThriftServer - 表持久化

[英]Spark, HiveContext, ThriftServer - Table persistence

我已經配置了數據 SparkStreaming。 我想為各種目標保留這些數據:

  • 為 Tableau 公開(它需要 thriftServer,而 thriftServer 需要 hiveContext)。

  • 有時我希望能夠更新一些數據。

HiveContext 中的數據保存在哪里? 在記憶中? 在本地磁盤上? 它是由 thriftServer 提供的嗎?

您可以選擇使用緩存在內存上的數據

your_hive_context.cacheTable("table_name")

Thrift Server 訪問包含所有表,甚至臨時表的全局上下文。

如果您緩存表 Tableau 將更快地獲得查詢結果,但您必須繼續運行 Spark Ba​​tch 應用程序。

我還沒有找到一種在不打開新 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM