如何解决在 pyspark 中添加新的列和行
我有 pyspark 数据框:
cust | prob
-------------------
A | 0.1
B | 0.7
C | 0.4
我想添加另一列 amount
并向每个客户添加行。我的预期结果是:
cust | prob | amount
------------------------
A | 0.1 | 1000
A | 0.1 | 2000
A | 0.1 | 3000
A | 0.1 | 4000
A | 0.1 | 5000
B | 0.7 | 1000
B | 0.7 | 2000
B | 0.7 | 3000
B | 0.7 | 4000
B | 0.7 | 5000
C | 0.4 | 1000
C | 0.4 | 2000
C | 0.4 | 3000
C | 0.4 | 4000
C | 0.4 | 5000
我需要帮助来制作这个新的列和行。我的真实数据由许多列组成,因此它应该复制数据集中的原始列。
解决方法
您可以添加一个爆炸阵列:
import pyspark.sql.functions as F
df2 = df.withColumn(
'amount',F.explode(
F.array(*[F.lit(i) for i in [1000,2000,3000,4000,5000]])
)
)
或分解序列:
df2 = df.withColumn(
'amount',F.explode(
F.sequence(F.lit(1000),F.lit(5000),F.lit(1000))
)
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。