从一个表到另一个表的配置单元json数据

从一个表到另一个表的配置单元json数据,json,hive,load,Json,Hive,Load,我在配置单元中有一个表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

我在配置单元中有一个表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是一个临时表。

配置单元有一个名为get\u json\u object的UDF

它可以使用

$:根对象 . : 子运算符 []:数组的下标运算符 *:用于[]的通配符
就性能而言,将JSON本身作为B中的一列,然后使用UDF加载到C中是一个好的选择,还是将JSON加载到另一个表D中,并使用JSON serde创建D,然后将B、D连接到C中?我想使用JSON serde表比调用UDF更好,但是之后的加入会花费你很多时间。所以如果UDF方法可以避免加入,那么使用UDF更好。