首页 > 解决方案 > 删除前导零pyspark?

问题描述

我想删除 pyspark 中一列的前导零?

在此处输入图像描述

标签: pyspark

解决方案


另一种方法是在regexp-replace这里使用:

from pyspark.sql import functions as F
df.show()
df = df.withColumn('subcategory', F.regexp_replace('subcategory', r'0', ''))
df = df.withColumn('subcategory_label', F.regexp_replace('subcategory_label', r'0', ''))
df.show()

输入数据框:

+-----------+-----------------+--------+
|subcategory|subcategory_label|category|
+-----------+-----------------+--------+
|      00EEE|        00EEE FFF|   Drink|
|    0000EEE|        00EEE FFF|   Fruit|
|       0EEE|       000EEE FFF|    Meat|
+-----------+-----------------+--------+

输出数据框:

+-----------+-----------------+--------+
|subcategory|subcategory_label|category|
+-----------+-----------------+--------+
|        EEE|          EEE FFF|   Drink|
|        EEE|          EEE FFF|   Fruit|
|        EEE|          EEE FFF|    Meat|
+-----------+-----------------+--------+

如果它需要0s 在字符串的开头,您可以使用这些来确保没有中间0被删除。:

df = df.withColumn('subcategory', F.regexp_replace('subcategory', r'^[0]*', ''))
df = df.withColumn('subcategory_label', F.regexp_replace('subcategory_label', r'^[0]*', ''))

推荐阅读