那里。
我正在考虑JSON格式字符串和地图之间的Hive列中的数据类型。
从我的常识上,没有论点认为地图类型绝对比json string
快。但是,我不知道Hive如何处理地图类型中的数据,因此我无法证明。
如果我只想将一些single depth nested data
放入列中,那么地图是最佳选择吗?以及比json string
的速度多快?
映射也被序列化为字符串并存储在字符串中。在映射器和还原器之间传输的数据在字符串中序列化,然后再次进行序列化。您不会注意到差异。但是,如果映射数据类型,则SERDE将作为地图类型进行序列化,并且您可以在查询中直接应用地图运算符,例如select m[key]
或size(m)
或map_keys(m)
。这看起来比使用JSON_TUPLE()
可能与lateral view
或GET_JSON_OBJECT()
一起简单得多,在这种情况下,映射可能会更快一些,尽管JSON可以存储更复杂的结构,例如嵌套地图的嵌套数组。如果映射适合您的数据,并适合复杂结构的JSON。