Apache spark pyspark数据帧中不存在列?

Apache spark pyspark数据帧中不存在列?,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,我有pyspark数据帧df,IP作为列名称,如下所示: summary `0.0.0.0` 8.8.8.8 1.0.0.0 1.1.1.1 count 14 14 14 14 min 123 231 423 54 max 2344 241 555 100 当我做df.columns时,它会给我一个列下列表,但在列表中,第一列后引号的特殊字符缺失 [0.

我有pyspark数据帧df,IP作为列名称,如下所示:

summary `0.0.0.0` 8.8.8.8  1.0.0.0 1.1.1.1
 count      14      14      14      14
 min        123    231      423     54
 max        2344   241      555     100
     
当我做df.columns时,它会给我一个列下列表,但在列表中,第一列后引号的特殊字符缺失

    [0.0.0.0, 8.8.8.8 ,1.0.0.0,1.1.1.1]
当我使用这个列表执行任何操作时,它会给我一个错误列0.0.0.0,在dataframe中不存在

此外,我还尝试使用下面的代码更改列名称,但没有更改,因为它不在列表中

  import re
  df = df.select([F.col(col).alias(re.sub("[`]+","",i)) for col in df.columns])
如何解决这个问题

在执行df.printSchema之后,df的模式如下所示

 root
   |-- summary: string (nullable = true)
   |-- 0.0.0.0: string (nullable = true)
   |-- 8.8.8.8: string (nullable = true)
   |-- 1.0.0.0: string (nullable = true)
   |-- 1.1.1.1: string (nullable = true)

使用数字作为列名的第一个字符,当从中进行查询时,始终可以强制添加反勾号

df.选择'summary','0.0.0.0`。显示 +----+----+ |总结| 0.0.0.0| +----+----+ |计数| 14| |最小123| |最大值2344| +----+----+ df.为df.columns中的col选择['summary']+[f'`{col}`',如果col!='summary']。show +----+----+----+----+----+ |摘要| 0.0.0.0 | 8.8.8.8 | 1.0.0.0 | 1.1.1| +----+----+----+----+----+ |计数| 14 | 14 | 14 | 14| |最小123 | 231 | 423 | 54| |最大值2344 241 555 100| +----+----+----+----+----+
spark dataframe是不可变的,您需要选择该列并将其置于不同的dataframe下。如何读取/创建初始dataframe df?您可以添加df.printSchema的结果吗?我正在从MySQL表中读取数据,然后我正在对该df执行透视操作,以派生这个数据帧@werner。df.printSchema没有显示任何反勾号。那就不知道了。。。