spark、hivecontext、thriftserver-table持久性

pb3s4cty  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(283)

我已配置数据sparkstreaming。我希望将这些数据用于各种目标:
为tableau公开(它需要thriftserver,而thriftserver需要hivecontext)。
有时我希望能够更新一些数据。
hivecontext中的数据保存在哪里?在记忆里?在本地磁盘上?它是由thriftserver提供的吗?

xwbd5t1u

xwbd5t1u1#

您可以选择使用在内存中缓存数据
您的\u配置单元\u上下文.cachetable(“表\u名称”)
thrift服务器访问包含所有表(甚至临时表)的全局上下文。
如果缓存表tableau,将更快地获得查询结果,但必须继续运行spark批处理应用程序。
我还没有找到在不打开新hivecontext的情况下更新某些数据的方法。

eqqqjvef

eqqqjvef2#

您可以通过执行以下操作将Dataframe从spark持久化到配置单元表: yourDataFrame.saveAsTable("YourTableName") 如果要将数据插入现有表,可以使用: yourDataFrame.writer().mode(SaveMode.Append).saveAsTable("YourTableName") 这将把Dataframe保存在一个持久的配置单元表上。此表的位置将取决于 hive-site.xml .
默认情况下,如果您在本地进行测试,则该位置将位于您的本地磁盘上的位置 /user/hive/warehouse/YourTableName 如果您将spark与hive on yarn/hdfs一起使用,那么表将保存在hdfs上由属性定义的位置上 hive.metastore.warehouse.dir 在hive-site.xml配置文件中
希望有帮助:)

相关问题