在pyspark中,我尝试用calc列(公式)中名称出现的列中的值替换一列中的多个文本值。
下面是一个例子:
输入:
|param_1|param_2|calc
|-------|-------|--------
|Cell 1 |Cell 2 |param_1-param_2
|Cell 3 |Cell 4 |param_2/param_1
所需输出:
|param_1|param_2|calc
|-------|-------|--------
|Cell 1 |Cell 2 |Cell 1-Cell 2
|Cell 3 |Cell 4 |Cell 4/Cell 3
在calc列中,默认值是一个公式。它可以像上面提供的一样简单,也可以是"2 *(param_8-param_4)/param_2-(param_3/param_7)"。我需要的是用名称相关列中的值替换所有param_x。
我尝试了很多方法,但是都不起作用,大多数时候,当我使用replace或regex_replace来替换值的列时,会出现列不可迭代的错误。
此外,列param_1、param_2、...、param_x是动态生成的,并且计算列值可以是这些列中的一些列,但不必是所有列。
你能用一个动态的解决方案来帮助我吗?
太感谢你了。最好的问候
1条答案
按热度按时间wr98u20j1#
输入/输出:
你不能直接这么做-因为你不能直接使用列值,除非你在python对象中收集(显然不推荐)。
这将适用于相同的情况:
输入/输出: