後,我用下面的命令做的第一後第二爆炸爆炸:SparkSQL第二爆炸的第一爆炸
myExplode = sqlContext.sql("select explode(names) as name_x from myTable")
myExplode = sqlContext.sql("select explode(name_x) as name1 from myTable")
myExplode.show(6,False)
然後我得到了錯誤: u"cannot resolve 'name_x' given input columns: [names, fieldA, fieldB, fieldC]; line 1 pos 15"
但是,第一個爆作品正好。我的第二次爆炸有什麼不對嗎?
下面是一個例子:
+---------------------------------------------------------------------------------+
|names |
+---------------------------------------------------------------------------------+
|[[[Max,White,WrappedArray(SanDiego)],3], [[Spot,Black,WrappedArray(SanDiego)],2]]|
|[[[Michael,Black,WrappedArray(SanJose)],1]] |
+---------------------------------------------------------------------------------+
後的第一爆炸,我得到:
+-----------------------------------------+
|name_x |
+-----------------------------------------+
|[[Max,Black],3] |
|[[Spot,White],2] |
|[[Michael,Yellow],1] |
+-----------------------------------------+
我現在要進行第二次發生爆炸name_x,這樣我就可以得到[ Max,Black],[Spot,White]和[Michael,Yellow]。在此之後,我甚至想要做第三次爆炸,這樣我只能得到Max,Spot和Michael,並將它們放在新的專欄中。這是可能的嗎?
謝謝!
您正在對不存在的字段執行第二次爆炸。你期望它做什麼? – eliasah
,因爲[names]列是數組的數組。所以在第一個爆炸打開外部數組後,我想打開第二個(內部)數組。謝謝! – Edamame
發佈示例數據集總是可以幫助其他人解決您的問題。 – dheee