次のコマンドを使用して、最初の爆発の後に 2 番目の爆発を実行しています。
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"
ただし、最初の爆発は問題なく機能します。2回目の爆発で何か間違ったことはありますか?
次に例を示します。
+---------------------------------------------------------------------------------+
|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] |
+-----------------------------------------+
[Max,Black]、[Spot, White]、および [Michael, Yellow] を取得できるように、name_x で 2 番目の爆発を作成したいと考えています。この後、Max、Spot、Michael のみを取得して新しい列に配置できるように、3 回目の爆発を実行したいと考えています。これは可能ですか?
ありがとう!