我有一个商业案例,其中一列将根据另外2列的值进行更新。我给出了一个例子如下:
+-------------------------------+------+------+---------------------------------------------------------------------+
|ErrorDescBefore |name |value |ErrorDescAfter |
+-------------------------------+------+------+---------------------------------------------------------------------+
|The error is in %s value is %s.|xx |z |The error is in xx value is z. |
|The new cond is in %s is %s. |y |ww |The new cond is in y is ww. |
+-------------------------------+------+------+---------------------------------------------------------------------+
ErrorDescBefore
column
有2个placeholders
,即%s
,placeholders
由columns
name
和value
填充。输出为ErrorDescAfter
。
我们可以在Pyspark中实现这一点吗?我尝试了string_format
,并意识到这不是正确的方法。任何帮助都将不胜感激。
谢谢你
3条答案
按热度按时间yqkkidmi1#
您可以始终使用UDF来满足自定义需求,例如:
结果:
rqcrx0a62#
您可以将
ErrorDescBefore
拆分为一个数组,其中%s
作为分隔符,然后使用concat
函数将其元素与name
和value
连接起来。jpfvwuh43#
如果您知道
ErrorDescBefore
列中的格式将保持一致,则可以在字符串%s
上执行split
ErrorDescBefore,并将每个项与name
和value
列连接起来: