Spark,HiveContext,ThriftServer语言 - 表持久性



我已经配置了数据SparkStreaming。我想为各种目标保留此数据:

  • 为 Tableau 公开(它需要 thriftServer,而 thriftServer需要蜂巢上下文)。

  • 有时我希望能够更新一些数据。

数据保存在HiveContext中的什么位置?在记忆中?在本地磁盘上?它是由节俭服务器提供的吗?

可以通过执行以下操作将数据帧从 Spark 保存到 Hive 表: yourDataFrame.saveAsTable("YourTableName")

如果要将数据插入现有表,可以使用: yourDataFrame.writer().mode(SaveMode.Append).saveAsTable("YourTableName")

这会将数据帧保存在持久性 Hive 表上。 此表的位置将取决于hive-site.xml中的配置。

默认情况下,如果在本地进行测试,则该位置将位于本地磁盘上的位置/user/hive/warehouse/YourTableName

如果您在 Yarn/HDFS 上使用 Spark 和 Hive,则表将保存在 HDFS 上,位于 Hive-site .xml配置文件中的属性hive.metastore.warehouse.dir定义的位置上。

希望这对:)有所帮助

您可以选择

使用以下方法将数据缓存在内存上

your_hive_context.cacheTable("table_name")

Thrift 服务器访问包含所有表(甚至是临时表)的全局上下文。

如果缓存表,Tableau 将更快地获得查询结果,但您必须继续运行 Spark Batch 应用程序。

我还没有找到一种在不打开新的 HiveContext 的情况下更新某些数据的方法。

相关内容

  • 没有找到相关文章

最新更新