PySpark - удалить незаконный улей персонажа из схемы - PullRequest
0 голосов
/ 07 мая 2018

У меня действительно большой фрейм данных pyspark, который получает данные из файлов json. Это пример схемы

 |-- Col1: array (nullable = true)
 |    |-- element: double (containsNull = true)
 |-- Col2: struct (nullable = true)
 |    |-- Col2-Col1: string (nullable = true)
 |    |-- Col2-Col2: string (nullable = true)
 |    |-- Col2-Col3: string (nullable = true)

Когда я делаю следующее, я не могу получить все имена столбцов в структуре.

df.columns
out: ['Col1', 'Col2']

Мне нужно заменить все дефисы подчеркиванием, чтобы я мог написать его в Hive. Hive не принимает '-', '[', '/' и т. Д. В имени столбца.

Например,

Имена столбцов должны измениться на

 |-- Col1: array (nullable = true)
 |    |-- element: double (containsNull = true)
 |-- Col2: struct (nullable = true)
 |    |-- Col2_Col1: string (nullable = true)
 |    |-- Col2_Col2: string (nullable = true)
 |    |-- Col2_Col3: string (nullable = true)

Код должен быть достаточно общим, чтобы многие столбцы можно было переименовывать без жесткого кодирования значений.

...