gpt4 book ai didi

hive - 将 Spark SchemaRDD 保存到 Hive 数据仓库

转载 作者:行者123 更新时间:2023-12-05 00:54:36 30 4
gpt4 key购买 nike

我们有很多 Json 日志,想要构建我们的 Hive 数据仓库。将 Json 日志导入 spark schemaRDD 很容易,schemaRDD 有一个 saveAsTable 方法,但它只适用于从 HiveContext 创建的 schemaRDD,而不适用于常规 SQLContext。当我尝试使用从 Json 文件创建的 schemaRDD 保存AsTable 时,它​​会抛出异常。有没有办法强制它与 HiveContext '绑定(bind)'并将其保存到 Hive 中?我看不出有什么明显的理由不能做。我知道有像 saveAsParquetFile 这样的选项用于数据持久性,但我们真的想利用 Hive。

最佳答案

那么,您的数据确实存在于 SchemaRDD 中吗?
您可以使用在 hive 上下文中注册 JSON RDD

hc.registerRDDasTable(rdd,"myjsontable")

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

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/

关于hive - 将 Spark SchemaRDD 保存到 Hive 数据仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25841274/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com