要使用循环按索引添加值吗

2024-09-28 01:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有csv名称和值:

Name,Values
Ram,47;97;33;94;6
Ram,59;98;24;83;3
Ram,77;63;93;86;62
Shyam,86;71;72;23;27
Shyam,74;69;72;93;7
Shyam,58;99;90;93;41
Sita,40;13;85;75;90
Sita,39;13;33;29;14
Sita,99;88;57;69;49
Ravan,67;93;90;57;3
Ravan,0;9;15;20;19
Ravan,77;64;46;95;48
Vivishan,90;49;91;14;70
Vivishan,70;83;38;27;16
Vivishan,86;21;19;59;4

我这样做是为了按索引对值求和:

totalValues = spark.sql("""WITH t1 AS
  (SELECT Name,cast(split(VALUES, ";") AS array<int>) AS V FROM t)
SELECT Name,concat_ws(";", sum(V[0]), sum(V[1]), sum(V[2]), sum(V[3]), sum(V[4])) AS VALUES
FROM t1
GROUP BY Name
ORDER BY Name""")

输出csv为:

totalValues.show(20)

Name,Values
Ram,183;258;150;263;71
Shyam,218;239;234;209;75
Sita,178;114;175;173;153
Ravan,144;166;151;172;70
Vivishan,246;153;148;100;90

我想用loop代替:

sum(V[0]), sum(V[1]), sum(V[2]), sum(V[3]), sum(V[4])

就像我们在python中所做的那样:

i=0
while i<len(V):
    sum(V(i))

Tags: csvnamefromasselectramvaluessum

热门问题