Pyspark:获取列名的子字符串
Pyspark: Get substring of Column Name
我是 PySpark 的新手,想更改我的列名称,因为它们中的大多数都有一个烦人的前缀。
我的专栏名称是这样的:
e1013_var1
e1014_var2
e1015_var3
Data_date_stamp
如果存在,我想从列名中删除 EXXX_
,该怎么做?因为我也想要大写的所有东西,所以我的代码到目前为止看起来像这样
for col in df.columns:
df= df.withColumnRenamed(col, col.upper())
感谢帮助,谢谢!
假设恼人前缀的格式是e[digits]_
,我们可以使用re.sub
:
import re
for col in df.columns:
new_col = re.sub(r"e\d+_", "", col).upper()
df = df.withColumnRenamed(col, new_col)
避免 for 循环的一个选项是使用 toDF
重命名 Spark 数据帧的所有列
import re
df_new = df.toDF(*[re.sub('e\d+_', '', c).upper() for c in df.columns])
print(df_new.columns)
# ['VAR1', 'VAR2', 'VAR3', 'DATA_DATE_STAMP']
我是 PySpark 的新手,想更改我的列名称,因为它们中的大多数都有一个烦人的前缀。 我的专栏名称是这样的:
e1013_var1
e1014_var2
e1015_var3
Data_date_stamp
如果存在,我想从列名中删除 EXXX_
,该怎么做?因为我也想要大写的所有东西,所以我的代码到目前为止看起来像这样
for col in df.columns:
df= df.withColumnRenamed(col, col.upper())
感谢帮助,谢谢!
假设恼人前缀的格式是e[digits]_
,我们可以使用re.sub
:
import re
for col in df.columns:
new_col = re.sub(r"e\d+_", "", col).upper()
df = df.withColumnRenamed(col, new_col)
避免 for 循环的一个选项是使用 toDF
重命名 Spark 数据帧的所有列
import re
df_new = df.toDF(*[re.sub('e\d+_', '', c).upper() for c in df.columns])
print(df_new.columns)
# ['VAR1', 'VAR2', 'VAR3', 'DATA_DATE_STAMP']