Apache spark pyspark数据帧中不存在列?
我有pyspark数据帧df,IP作为列名称,如下所示: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.
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没有显示任何反勾号。那就不知道了。。。