如何在sparksql中使用pivot函数

zphenhs4  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(755)

我有sparkv2.4,我试图在sparksql中运行pivot函数,但每次都会出错。
表格标题: prof_sk, prod_sk, rep_sk, metric_sk, metric_value ```
select *
from (
select prof_sk, prod_sk, rep_sk
from pivot_temp) as t
PIVOT
(
SUM(metric_value) for metric_sk in (attainment, sales_trx, sales_nrx)) AS PivotTable

数据透视前的示例数据:
![](https://i.stack.imgur.com/NWHWE.png)
需要数据透视后的数据:
![](https://i.stack.imgur.com/CxMMY.png)
以及如何通过sparksql实现unvipot
qgelzfjb

qgelzfjb1#

内部查询应包含透视所使用的所有列。
您可能会遇到的下一个错误可能与度量类型有关:因为它们是字符串,所以必须用引号引起来。
有时像这样(未测试):

select *  from (select prof_sk, prod_sk, rep_sk, metric_sk, metric_value   from pivot_temp) as t  PIVOT (SUM(metric_value) for metric_sk in ('attainment', 'sales_trx', 'sales_nrx')) AS PivotTable

相关问题