当前位置: 首页 > 知识库问答 >
问题:

将Spark SchemaRDD保存到Hive数据仓库中

訾稳
2023-03-14

我们有很多Json日志,并且希望构建我们的Hive数据仓库。将Json日志获取到spark schemaRDD中很容易,并且schemaRDD有一个saveAsTable方法,但它只适用于从HiveContext创建的Schemards,而不是从常规SQLContext创建的Schemards。当我试图使用从Json文件创建的schemaRDD保存Eastable时,它会抛出异常。有没有办法强制它与HiveContext‘绑定’并保存到Hive中?我看不出有什么明显的理由做不到。我知道有像saveAsParquetFile这样的选项用于数据持久化,但我们真的想利用Hive。

共有1个答案

李俭
2023-03-14

那么,你有你的数据在一个SchemaRDD?您可以使用以下命令在配置单元上下文中注册JSON RDD

HC.registerrddastable(rdd,“myjsontable”)

“myjsontable”现在只存在于配置单元上下文中,数据仍然没有保存在那里。然后你可以做一些类似的事情

hc.sql(“创建表myhivejsontable AS SELECT*FROM myjsontable”)

这实际上将在hive中创建您的表。您实际上需要以什么格式存储它?我推荐Parquet,因为柱状存储对查询更有效。如果希望将其存储为JSON,可以使用Hive SerDe(我在这里写了https://github.com/rcongiu/hive-json-serde)

我写了一篇关于在Spark中创建嵌套数据并将其加载到Hive的短文,它是针对parquet而不是json的,但它可能会有所帮助:http://www.congiu.com/creating-nested-data-parquet-in-spark-sql/

 类似资料:
  • 问题内容: 我有一个具有表的应用程序,当您单击表中的项目时,它会使用其数据(FieldGroup)填充一组文本字段,然后您可以选择保存更改, 我想知道如何保存更改用户对我的postgres数据库进行的更改 。我正在为此应用程序使用vaadin和hibernate模式。到目前为止,我已经尝试做 我努力了 而且我也尝试过 最后两个给我以下错误 问题答案: 我已经弄清楚了如何对数据库进行更改,下面是一些

  • 我正在为我的大学创建一个Android项目,在那里我想用移动指纹传感器制作像指纹考勤系统这样的东西,所以实际上我想把生物特征数据保存到数据库中,以便在考勤时进一步参考。我想将指纹数据保存到移动指纹传感器SQL数据库中。

  • 我想从MongoDB集合中获得我的翻译。我找到了一个使用自定义加载器服务的例子(https://github.com/angula-translate/angula-translate/blob/920a9febc22f61368153d844f7cbefcfebb6ecec/src/service/loader-url.js)。 但是,我想在没有可用的翻译时,在该集合中自动获取我的翻译密钥。有办

  • 同样地,为需要存储数据的每个JPA实体创建单独的存储库类是否理想?或者有什么更好的方法可以在有限的存储库类的情况下将数据存储到数据库?

  • 是否可以将火花中的直接保存到Hive? 我尝试过将数据帧转换为Rdd,然后保存为文本文件,然后加载到hive中。但我想知道是否可以直接将数据帧保存到hive

  • 本文向大家介绍pandas实现to_sql将DataFrame保存到数据库中,包括了pandas实现to_sql将DataFrame保存到数据库中的使用技巧和注意事项,需要的朋友参考一下 目的 在数据分析时,我们有中间结果,或者最终的结果,需要保存到数据库中;或者我们有一个中间的结果,如果放到数据库中通过sql操作会更加的直观,处理后再将结果读取到DataFrame中。这两个场景,就需要用到Dat