Мне нужно было бы полностью сгладить многие (10TB +) все столбцы json в каждом файле.
Моя структура всегда повторяется, с этими правилами:
- Ключ может быть 1-N
- У меня есть три подключа:
- мой столбец набора результатов должен быть именем key_s или key_n вместо s, n
- в случае s и n будет два столбца
Мне нужно протолкнуть много данных через это и использовать потоковую передачу Spark, если это возможно.
Статическим решением будет:
data.select(col('key1').getItem('s').alias('key1_s')
,col('key2').getItem('s').alias('key2_s')
,col('key2').getItem('n').alias('key2_n')
,col('key3').getItem('n').alias('key3_n')
,col('key4').getItem('s').alias('key4_s')
,col('key5').getItem('s').alias('key5_s')
)
JSON имеет следующую структуру:
root
|- key 1: struct
| | --s: string
|- key 2: struct
| | --s: string
| | --n: string
|- key 3: struct
| | --n: string
|- key 4: struct
| | --s: string
|- key 5: struct
| --s: string
Ожидаемый результат:
root
|- key 1_s: string
|- key 2_s: string
|- key 2_n: string
|- key 3_n: string
|- key 4_s: string
|- key 5_s: string