在嵌套的JSON上爆炸功能

时间:2016-01-25 06:44:41

标签: scala apache-spark apache-spark-sql hiveql

我正在努力连续演出"爆炸"函数在以下json结构

 |-- DEF: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- PIT: array (nullable = true)
 |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |-- BIT: string (nullable = true)
 |    |    |    |    |-- S_BIT: string (nullable = true)
 |    |    |    |    |-- T_TYPE: string (nullable = true)
 |    |    |    |    |-- edge: string (nullable = true)
 |    |    |    |    |-- name: string (nullable = true)
 |    |    |    |    |-- type: string (nullable = true)
 |    |    |-- insDef: string (nullable = true)
 |    |    |-- insName: string (nullable = true)

我想将PIT数组元素中的所有值提取到一个元组中,以便将它们设置为PIT对象(如果有更好的方法,请纠正我)。以下命令返回WrappedArray。但是我想要一个数组来对它执行map函数(将变量设置为类成员)。

FROM levelTable SELECT cat LATERAL VIEW explode(DEF.UPIT) table1 AS cat

UPDATE1: 以下命令返回所有" name"来自子元素PIT的值。

FROM levelTable SELECT cat LATERAL VIEW explode(DEF.UPIT[0].name) table1 AS cat

但我仍然希望将它们转换为元组数组(PIT.name,DEF.insName,DEF.insDef)

0 个答案:

没有答案
相关问题