Skip to main content
 首页 » 编程设计

python之如何删除 Spark 表列中的空格 (Pyspark)

2024年08月19日35myhome

我想从特定列 (purch_location) 的所有值中删除空格。我使用的是 spark 表,而不是数据框或 SQL 表(但如果需要,我可以使用数据框或 SQL 表)。

下面是我的 spark 表是如何生成的:

dataset = spark.table("trans") 
cols = dataset.columns 
dataset.show(5) 
+----------+-------------+-------+--------------------+--------------+---+---+ 
|purch_date|  purch_class|tot_amt|       serv-provider|purch_location| id|  y| 
+----------+-------------+-------+--------------------+--------------+---+---+ 
|06/11/2017|     Printing|  -0.66|   CARDS AND POCKETS|              |  0|  0| 
|03/11/2017|Uncategorized| -17.53|             HOVER  |              |  1|  0| 
|02/11/2017|    Groceries| -70.05|1774 MAC'S CONVEN...|     BRAMPTON |  2|  1| 
|31/10/2017|Gasoline/Fuel|  -20.0|              ESSO  |              |  3|  0| 
|31/10/2017|       Travel|   -9.0|TORONTO PARKING A...|      TORONTO |  4|  0| 
+----------+-------------+-------+--------------------+--------------+---+---+ 

我尝试了以下函数 pyspark.sql.functions import regexp_replace

from pyspark.sql.functions import regexp_replace 
dataset1=dataset.select(regexp_replace(col("purch_location"),"\\s+","")) 

删除列中值之后但不之前的空格。它还删除了我想保留的其余专栏。

+-------------------------------------+ 
|regexp_replace(purch_location, \s+, )| 
+-------------------------------------+ 
|                                     | 
|                                     | 
|                             BRAMPTON| 
|                                     | 
|                              TORONTO| 
|                                     | 
|                             BRAMPTON| 
|                             BRAMPTON| 
|                                     | 
|                                 null| 
|                          MISSISSAUGA| 
|                                     | 
|                             BRAMPTON| 

知道如何解决这个问题吗?提前致谢。

请您参考如下方法:

如果您使用数据框,这应该可行:

from pyspark.sql.functions import trim 
dataset = dataset.withColumn("purch_location", trim(df. purch_location))