我想添加一个字符串到一个现有的列。例如,df['col1']
的值为'1', '2', '3'
等,我想在col1
的左边连接字符串'000'
,这样我就可以得到一个列(新的或替换旧的无关紧要)为'0001', '0002', '0003'
。
我想我应该使用df.withColumn('col1', '000'+df['col1'])
,但当然它不工作,因为pyspark Dataframe 是不可变的?
这应该是一个简单的任务,但我没有找到任何在线。希望有人能给予我一些帮助!
谢谢大家!
3条答案
按热度按时间olmpazwi1#
http://spark.apache.org/docs/2.0.0/api/python/pyspark.sql.html#module-pyspark.sql.functions
ct2axkht2#
这里的另一个选项是使用
pyspark.sql.functions.format_string()
,它允许您使用Cprintf
样式格式。下面是一个列中的值为整数的示例。
这里的
"%03d"
表示打印一个最多用3个零填充的整数,这就是10
Map到010
而100
根本不变的原因。或者,如果您想在前面正好添加3个零:
js4nwp543#
假设您的数据框中有一个名为"column_source"的列,列号为
1,2,3
| 列源|
| - ------|
| 1个|
| 第二章|
| 三个|
然后你可以使用下面的代码:
输出:
| 列源|色谱柱_已修改|
| - ------|- ------|
| 1个|零零零一|
| 第二章|小零零零二|
| 三个|小零零零三|