回答

收藏

分解表以透视列(SQL,PYSPARK)

技术问答 技术问答 267 人阅读 | 0 人回复 | 2023-09-11

我正在AWS Glue中使用python3.6的环境pyspark中进行工作。我有这张桌子:
- R* e) f' V/ D/ ~+----+-----+-----+-----+8 T  f8 S* G& ]$ K9 |
|year|month|total| loop|
5 w% N. c" U' u4 i, h. `/ }0 Q+----+-----+-----+-----+2 v! I/ g# E7 q. m) A9 N
|2012|    1|   20|loop1|* L& V' _! {& c
|2012|    2|   30|loop1|3 H1 \. W, a, \
|2012|    1|   10|loop2|1 B' w' d% f/ J# K+ y: B6 N% ^
|2012|    2|    5|loop2|0 a: C! J6 g& A# J) c& h3 g9 x
|2012|    1|   50|loop3|
& U4 r1 w1 I1 P0 `|2012|    2|   60|loop3|
8 Q: o5 A8 y9 R7 g# Y% i+----+-----+-----+-----+/ D) \! x) m' R! L$ z
我需要得到一个类似的输出:
3 ^' R, Y8 V: z6 C# ryear    month   total_loop1 total_loop2 total_loop3
' j6 C7 n  u7 A  U$ t- z! B2012    1         20           10           50! c( n" S5 G( N* u9 c
2012    2         30           5            60
% K. i- s/ B& Y$ U4 H1 i; |! |* V0 x我得到的是与SQL代码更接近的信息:: u1 t9 c6 Y5 X1 n
select a.year,a.month, a.total,b.total from test a
2 Q2 g* J/ E/ k, Z+ E0 N4 O$ ^left join test b
/ O5 E( ]! x+ Q% Bon a.loop  b.loop
$ g6 X* K4 k& z$ eand a.year = b.year and a.month=b.month" |* {2 n4 i1 c/ u
到目前为止的输出:' Q8 _5 W2 A# Z9 s! k0 k
+----+-----+-----+-----+1 z: C1 O- A8 _8 J6 n1 \: h
|year|month|total|total|
6 {, i7 f4 l' C& `1 V6 S. ~0 ?1 d+----+-----+-----+-----+- J+ A' V( n2 l& T8 Z
|2012|    1|   20|   10|4 z" X$ y7 O5 t) C3 P
|2012|    1|   20|   50|
) |- F) X2 s  [# X& h2 o. X7 I|2012|    1|   10|   20|# e8 u! W/ d# s
|2012|    1|   10|   50|
" F9 L! d8 H% A$ @|2012|    1|   50|   20|6 J) v5 [- b; B% g3 f6 B. l3 {
|2012|    1|   50|   10|
- O; ~2 [' N, h2 e- e9 \|2012|    2|   30|    5|6 \% W% }8 |4 V& l
|2012|    2|   30|   60|
5 |5 P) `( i: x* d) u$ ?! [5 T|2012|    2|    5|   30|  c0 S! }7 a  T% W: g4 [7 u
|2012|    2|    5|   60|
+ @, o- B; z& Y|2012|    2|   60|   30|
2 j- [/ `3 A. W|2012|    2|   60|    5|) ^" M4 q+ V( y& w" X7 n) X
+----+-----+-----+-----+
6 O% e) o/ `* T. w, [6 D我该怎么办?非常感谢
: e4 |* X; P, I! }0 a0 m               
+ R) g) ]7 d& @解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则