rup*_*das 3 pyspark spark-dataframe
我有一个Pyspark数据帧(原始数据帧)具有以下数据(所有列都有字符串数据类型):
id Value
1 103
2 1504
3 1
Run Code Online (Sandbox Code Playgroud)
我需要在value列中创建一个带有padding的新修改数据帧,这样该列的长度应为4个字符.如果length小于4个字符,则在数据中添加0,如下所示:
id Value
1 0103
2 1504
3 0001
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?如何使用Pyspark数据框实现它?任何帮助将不胜感激.
Sur*_*esh 11
你可以使用功能模块中的lpad,
from pyspark.sql.functions import lpad
>>> df.select('id',lpad(df['value'],4,'0').alias('value')).show()
+---+-----+
| id|value|
+---+-----+
| 1| 0103|
| 2| 1504|
| 3| 0001|
+---+-----+
Run Code Online (Sandbox Code Playgroud)
lpad结合使用 PySpark函数withColumn:
import pyspark.sql.functions as F
dfNew = dfOrigin.withColumn('Value', F.lpad(dfOrigin['Value'], 4, '0'))
Run Code Online (Sandbox Code Playgroud)