Dataframe 如何在pyspark中动态删除小数并将零放在数字前面?

Dataframe 如何在pyspark中动态删除小数并将零放在数字前面?,dataframe,apache-spark,pyspark,apache-spark-sql,Dataframe,Apache Spark,Pyspark,Apache Spark Sql,我有一个pyspark数据帧,我想删除之后的所有内容,我想删除 此外,我想在数字前面放零,这样每个数字的长度都是4 原样: |270.0 | |749.5 | |460.0 | |90.0 | |670.0 | |656.6666666666666| |1210.0 | 将是: |0270| |0749| |0460| |0

我有一个pyspark数据帧,我想删除
之后的所有内容,我想删除
此外,我想在数字前面放零,这样每个数字的长度都是4

原样:

|270.0            |  
|749.5            |  
|460.0            |  
|90.0             |  
|670.0            |    
|656.6666666666666|  
|1210.0           |
将是:

|0270|  
|0749|  
|0460|  
|0090|  
|0670|  
|0656|  
|1210| 
亲切问候,

Wokter

您可以使用+功能:

from pyspark.sql import functions as F

df1 = df.withColumn(
    "number",
    F.expr("lpad(format_number(number, '####'), 4, '0')")
)

df1.show()
#+------+
#|number|
#+------+
#|  0270|
#|  0750|
#|  0460|
#|  0090|
#|  0670|
#|  0657|
#|  1210|
#+------+
lpad
+
regexp\u replace

df1 = df.withColumn(
    "number",
    F.lpad(F.regexp_replace("number", "\\.(.*)", ""), 4, '0')
)