繁体   English   中英

PySpark 使用正则表达式替换字符并删除 Databricks 上的列

[英]PySpark Replace Characters using regex and remove column on Databricks

我正在尝试从下面显示的数据框中删除一列和特殊字符。

下面用于创建数据框的代码如下:

dt = pd.read_csv(StringIO(response.text), delimiter="|", encoding='utf-8-sig')

以上产生以下输出:

在此处输入图像描述

我需要正则表达式的帮助来删除字符  并删除第一列。

至于正则表达式,我尝试了以下方法:

dt.withColumn('COUNTRY ID', regexp_replace('COUNTRY ID', @"[^0-9a-zA-Z_]+"_ ""))

但是,我收到语法错误。

非常感谢任何帮助。

如果传入列的位置是固定的,您可以使用正则表达式从列名中删除额外的字符,如下所示


import re

colname = pdf.columns[0]
colt=re.sub("[^0-9a-zA-Z_\s]+","",colname)
print(colname,colt)
pdf.rename(columns={colname:colt}, inplace = True)

对于删除索引列,您可以参考堆栈答案

您已将数据作为 pandas 数据框读入。 据我所知,您需要一个火花数据框。 从 pandas 转换为 spark 并重命名列。 这将删除 pandas 默认索引列,在您的情况下,您将其称为第一列。 然后,您可以重命名列。 下面的代码

df=spark.createDataFrame(df).toDF('COUNTRY',' COUNTRY NAME').show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM