Hive json数据从一个表到另一个表

时间:2015-04-06 22:41:48

标签: json hive load

我在Hive中有一个表A,其中一列a1包含json。

Table A
   Columns - a1

例如,a1列中的json有5个属性(j1,j2,j3,j4,j5)。

我需要将表A中的数据加载到另一个表B.

Table B
       Columns - b1, b2, b3, b4, b5

将数据从A加载到B的规则如下,

b1 - j1
b2 - j2
b3 - j3
b4 - a1 (entire column of A)

如何做到这一点?

可能需要将数据从B加载到另一个表C.

Today C 
  Columns - c1, c2, c3 

c1,c2,c3加载来自B列b1,b2,b3的数据

c1 - b1
c2 - b2
c3 - b3

但是可能需要将另一列c4添加到C中,而c4必须从B列b4中加载一个json属性(j4)。

c1 - b1
c2 - b2
c3 - b3
c4 - one of the json attributes from column b4 of B

这可能吗?如果是的话,你能给我一些指示吗?

任何其他解决方案也没问题。我想要的只是将JSON存储在历史记录中,以便以后可以检索其属性。在上面的示例中,表A是临时表,因此是临时的。

1 个答案:

答案 0 :(得分:0)

Hive有一个名为get_json_object的UDF。

它可以使用

的json路径
  • $:根对象
  • 。 :儿童经营者
  • []:数组的下标运算符
  • *:[]
  • 的通配符