-1

Возможно ли, что только первый элемент после функции explode()?Возьмите только первый (или n-й) элемент после взрыва

+-----------------------------------------+ 
|dog          | 
+-----------------------------------------+ 
|[[Max,Black],3]       | 
|[[Spot,White],2]       | 
|[[Michael,Yellow],1]      | 
+-----------------------------------------+ 

Например, в приведенном выше случае, мы только хотим, чтобы [Макс, черный], [Spot, белый] и [Майкл, Желтый]. Второй элемент в каждой ячейке (3, 2 и 1) можно фактически отбросить.

Спасибо!

+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") 
Смежные вопросы