Hive get_json_object函数是否解析每个JSON对象以进行字段解析,即使我们在JSON数据之上创建视图?
我们在使用SERDE阅读JSON数据时遇到问题。出于这个原因,我们想要使用这个udf并在数据之上创建视图。
问题是关于以后使用此路径查询数据可能会很慢的问题。
如果在hive表顶部创建一个视图,那么在View创建时只会解析一次数据会很有用。
Hive是否支持这个?
Hive专家对此有何想法?
答案 0 :(得分:1)
我相信Hive支持观点。但是,如果你担心它的速度,你可以加载impala
。它使用与hive
相同的元数据和表格,但用户查询速度要快得多。
答案 1 :(得分:0)
视图的目的是隐藏来自用户的复杂查询。假设你做了一些复杂的连接查询以获取所有销售数据。现在你希望你的最终用户触发查询,例如select * from sales以获取所有销售数据那种情况你可以去看。每当您在查询中使用视图时,它将为该视图运行map reduce作业。因此它不会对速度进行任何改进。
关于你的问题,摆脱问题的一种方法是将所有解析数据存储到另一个表中,如果可能的话,然后触发查询。这将减少每次调用serde的成本。我已经按照这种方法进行了博客。