有。
我正在考虑hive列中json格式的字符串和map之间的数据类型。
按照我的常识,没有理由认为地图类型肯定比json string
更快。但是,我不知道配置单元如何处理地图类型中的数据,因此无法证明。
如果我只想将single depth nested data
放入一列中,则map是最佳选择?以及比json string
快多少?
答案 0 :(得分:0)
Map也被序列化为字符串并存储在字符串中。在映射器和化简器之间传输的数据将以字符串序列化,然后再次反序列化。您不会注意到差异。但是如果是地图数据类型,SerDe将反序列化为“地图类型”,您可以直接在查询中应用地图运算符,例如select m[key]
或size(m)
或map_keys(m)
。 与使用JSON_TUPLE()
或lateral view
一起使用GET_JSON_OBJECT()
相比,这看起来要简单得多,在这种情况下,虽然JSON可以存储更复杂的结构,但映射可能会更快一些就像地图的嵌套数组一样。如果适合复杂数据的数据和JSON,请选择map。