PySpark - 从架构中删除非法Hive角色

时间:2018-05-07 16:14:44

标签: hive pyspark spark-dataframe pyspark-sql

我有一个非常大的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)

代码必须足够通用,以便可以重命名许多列而无需对值进行硬编码。

0 个答案:

没有答案