我的数据如下:
>>> df1.show()
+-----------------+--------------------+
| corruptNames| standardNames|
+-----------------+--------------------+
|Sid is (Good boy)| Sid is Good Boy|
| New York Life| New York Life In...|
+-----------------+--------------------+
因此,根据上面的数据,我需要应用regex,创建一个新的列,并获得第二列中的数据,即 standardNames
. 我试过以下代码:
spark.sql("select *, case when corruptNames rlike '[^a-zA-Z ()]+(?![^(]*))' or corruptNames rlike 'standardNames' then standardNames else 0 end as standard from temp1").show()
它抛出以下错误:
pyspark.sql.utils.AnalysisException: "cannot resolve '`standardNames`' given input columns: [temp1.corruptNames, temp1. standardNames];
1条答案
按热度按时间vsmadaxz1#
试试这个例子
select sql
. 如果regex模式是真的,我假设您想基于corruptnames创建一个名为standardnames的新列,否则“do something other…”。注意:您的模式将无法编译,因为您需要用\转义第二个(最后一个)。
代码