我有一个pyspark数据框,带有文本列
df = df.withColumn('mapped_col', regexp_replace('mapped_col', '.*-RH', 'RH'))
df = df.withColumn('mapped_col', regexp_replace('mapped_col', '.*-FI, 'FI'))
df = df.withColumn("mapped_col",mapper.getItem(F.col("action")))
有没有可能有一个类似正则表达式的词汇表,这样我就可以重新组合这两个“函数”? {.*-RH:“RH”,“*FI:“FI”}
+-----------------------------+
|message |
+-----------------------------+
|GDF2009 |
|GDF2014 |
|ADS-set |
|ADS-set |
|XSQXQXQSDZADAA5454546a45a4-FI|
|dadaccpjpifjpsjfefspolamml-FI|
|dqdazdaapijiejoajojp565656-RH|
|kijipiadoa
+-----------------------------+
+-----------------------------+-----------------------------+
|message |status|
+-----------------------------+-----------------------------+
|GDF2009 | GDF
|GDF2014 | GDF
|ADS/set | ADS
|ADS-set | ADS
|XSQXQXQSDZADAA5454546a45a4-FI| FI
|dadaccpjpifjpsjfefspolamml-FI| FI
|dqdazdaapijiejoajojp565656-RH| RH
|kijipiadoa | null or ??
所以第4行用dict映射,另一行用regex映射。未映射为空或?? 谢谢,
您可以使用
contains
函数实现它:输出:
相关问题 更多 >
编程相关推荐