2016-04-25 79 views
-1

只有在explode()函數之後纔有可能取得第一個元素?例如,在上述情況下,我們只想保留[Max,Black],[Spot,white]和[Michael,Yellow]。每個單元中的第二個元素(3,2和1)實際上可以被丟棄。爆炸後只取第一個(或第n個)元素

謝謝!

+0

我可以使用'UDF'還是有限制? –

回答

1

假設你的架構看起來是這樣的:

root 
|-- dog: struct (nullable = false) 
| |-- col1: struct (nullable = false) 
| | |-- col1: string (nullable = false) 
| | |-- col2: string (nullable = false) 
| |-- col2: integer (nullable = false) 

然後,你可以做到以下幾點:

test.withColumn("dog", $"dog".getField("col1")) 

或者,如果你想保留兩列,這樣做:

test.select($"dog", $"dog".getField("col1") as "dog2") 
相關問題