如何应用hive分解/横向视图多个阵列?

5m1hhzi4  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(423)

我有如下数据。
[{“aref”:“4864190760901781”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760905386”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760906244”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null,“aprd”:null},{“aref aref,“aprd”:null},{“aref”:“4864190760906269”,“aprd”:null},{“aref”:null,“aprd”:“uc”},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760906301”,“aprd”:null},{“aref”:null,“aprd”:“uc”},{“aref”:null,“aprd”:null},{“aref”:null,{“aref”:null},{“aref”:“4864190760907010”,“aprd”:null},{“aref”:null,“aprd”:“uc”},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760907127”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760908786”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760909289”,“aprd”:null},{“aref”:null,“aprd”:“aprd”:“uc},{“aref,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760917217”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760917514”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null,“aprd”:null},{“aref”:null},{“aref”:null},{“aref”:“4864190760918728”,“aprd”:null},{“aref”:null,{“aref null”,“aprd”:“aprd”:“uc,{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760928420”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760929006”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“aref”:“4864190760931945”,“aprd”:null},{“aref,“aprd”:“uc”},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760933107”,“aprd”:null},{“aref”:null,“aprd”:“uc”},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760936217”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null},{“aref:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760937835”,“aprd”:null},{“aref”:null,“aprd”:“uc”},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760941175”,“aprd”:null},{“aref”:null,“aprd”:“uc”},{“aref”:null,“aprd”:null},{“aref”:null,“aprd”:null},{“aref”:“4864190760942157”,“aprd”:null},{“aref”:null,“aprd”:“uc},{“aref”:null,“aprd”:null}]
如何在数据上应用配置单元分解/横向视图?
我想检索两列aref&aprd

dzjeubhm

dzjeubhm1#

有关侧视图分解的详细信息,请参阅link:https用法:/cwiki.apache.org/confluence/display/hive/languagemanual+lateralview
根据您的要求,可能有两个答案: SELECT a.aref AS aref, a.aprd AS aprd FROM table_name LATERAL view EXPLODE(segemnt_colume_name) tablealis AS a; 在上面的查询输出中,您将只得到没有任何属性的行 null 数组列的结构中的值。意味着价值观 {"aref":null,"aprd":null} 不会生成任何行。 SELECT a.aref AS aref,a.aprd AS aprd from table_name LATERAL view OUTER EXPLODE(segemnt_colume_name) tablealis AS a; 这里我们得到所有行,包括数组列的struct中包含空值的行。

km0tfn4u

km0tfn4u2#

尝试此方法进行横向视图爆炸。

SELECT acol.aref    AS aref, 
           acol.aprd     AS aprd 
    FROM   your_table lateral view explode(yourcol_name) adtable AS acol;

相关问题