我需要你的帮助在下面的情况下(使用Pig拉丁语)。
我有以下格式的输入数据:
DATE,ERROR,COUNT
20110212,ORA-00600,9
20110212,ORA-03135,1
20110226,ORA-20000,1
20110305,ORA-03135,1
20110319,ORA-01555,1
20110319,ORA-03135,18
20110326,ORA-00600,1
20110409,ORA-00600,1
20110416,ORA-20000,1
20110423,ORA-01555,2
20110507,ORA-00600,1
20110507,ORA-01555,2
20110514,ORA-00600,1
20110514,ORA-03135,4
我正在寻找如下输出。
DATE,ORA-00600,ORA-03135,ORA-20000....
20110212,9,1,0....
20110514,1,4,0...
20110416,0,0,1...
基本上,我是在关注输入数据;我不能使用嵌套的foreach(带过滤器),因为错误代码(比如ora-00600,ora-03135…)不是常量,而是动态的。
请建议。
1条答案
按热度按时间8wigbo561#
关于sql中的pivot功能,我并不感到惊讶。我也有一些项目,我需要一个数据透视结果的使用。电子表格是一个很好的例子(也是企业it界的一个巨大需求)。
数据透视表很好,但是如果您像我一样在动态的制造环境中工作,它们通常会变得很麻烦和复杂。在这种领域,需求总是主观的。会让程序员从根上拔出头发。
正是因为这个原因,我决定在datatable对象上创建一个扩展,它生成一个pivot表,我发现它既快速又有用。
是的,我知道sql的版本,并且仍然知道有一些方法可以使sql中的pivot更加动态(用于更改列)。但我已经学会了保持简单。简单带来了稳定性、可用性、可扩展性和可伸缩性。。这些都是现实企业界的巨大优势。
我现在和你分享这个,希望你能修改它来满足你的需要。它是动态的,而且非常快。。最简单的是。
用法很简单,因为它是datatable对象上的扩展方法:
所以如果mytbl的布局是这样的:
它将返回:
在垂直行中布局ui条目数据的好处(无论如何在制造环境中)是更好地适应ui字段的增加或减少。。这种情况经常发生!因为您最不想做的就是修改数据模式。尤其是当大约一百个(已知的和未知的)应用程序也在使用它时。
不管怎样,不管它值多少钱,我希望这能引导你朝着理想的方向前进。我经常用这个。