回答

收藏

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

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

我正在AWS Glue中使用python3.6的环境pyspark中进行工作。我有这张桌子:: d, ]4 J6 \8 g+ e& e
+----+-----+-----+-----+
1 ~# e! o4 X8 p! \|year|month|total| loop|
: S# o- T3 `/ x: _+----+-----+-----+-----+
$ ~$ m" g: t8 J0 Q! T6 [* `|2012|    1|   20|loop1|0 \, ]/ f5 d+ E. v8 W3 s
|2012|    2|   30|loop1|
3 K8 l3 B9 ]8 U9 C# o/ g|2012|    1|   10|loop2|
6 j, K9 N  T) U5 e3 ||2012|    2|    5|loop2|. @7 G. M1 }3 w  O
|2012|    1|   50|loop3|
- A8 P4 O$ F9 P4 g; e. @|2012|    2|   60|loop3|( Q) _. S% Q# o3 x( p
+----+-----+-----+-----+" r: P- B* V/ h$ m7 {7 w# I- X) K
我需要得到一个类似的输出:
7 k+ \0 p# {- W$ N/ ~; t  Dyear    month   total_loop1 total_loop2 total_loop3# g# i, m. E6 Y# S. {3 f" i& w5 m
2012    1         20           10           50$ D* p! |" B4 {  }* L
2012    2         30           5            60+ w% i! p4 Y) C" a
我得到的是与SQL代码更接近的信息:0 W- c* Q% p6 M( T
select a.year,a.month, a.total,b.total from test a
, H. H% O: v2 V7 i8 L/ H$ yleft join test b
4 F4 o: Z  N; W( xon a.loop  b.loop
3 G# t# w, F2 \* Z8 ?$ t% }and a.year = b.year and a.month=b.month& n# T: `! _, p3 p; D
到目前为止的输出:
, l/ |* L0 k7 i- [+----+-----+-----+-----+2 t' t' h7 Z( j1 ~& S9 T- o, T6 X
|year|month|total|total|
, N; c$ ]0 H) {' J+ S+----+-----+-----+-----+  r$ F$ E0 a0 c7 a2 B
|2012|    1|   20|   10|
* I. @. h' @/ n9 g6 N2 N7 v) v& O$ w|2012|    1|   20|   50|
3 \2 Q4 w$ g4 w" X$ P3 T! \) P' f|2012|    1|   10|   20|
% n8 F# J: ?$ N  x- D7 E0 u|2012|    1|   10|   50|+ o- ^; D  s+ {" j( Y& s
|2012|    1|   50|   20|
' h. i8 x9 i( ~& J8 b6 d|2012|    1|   50|   10|
: V  U1 h* S/ `|2012|    2|   30|    5|8 U5 \0 F, x% z& ?# j
|2012|    2|   30|   60|6 Z7 }6 f: K$ V" U% [
|2012|    2|    5|   30|( v" D* k! ?# Q! {) M
|2012|    2|    5|   60|" G& L! q; G3 Z' c0 C
|2012|    2|   60|   30|/ {' Q7 b. w' ]; r8 X
|2012|    2|   60|    5|2 e' }  @' G3 H& |
+----+-----+-----+-----+
. }4 M1 O; ?% `我该怎么办?非常感谢
. }5 y; Z# Y$ w8 s- V               
" y+ ?! p7 O7 _( e% z) `解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则