铸造和熔化数据

时间:2012-07-11 17:15:14

标签: java reshape

我想知道Java是否支持以某种方式“转换和融合”数据。 “铸造和熔化”是指以R包重塑(或重塑2)的方式“重塑”数据。

所以我有一个SQL查询返回以下内容(在ResultSet中):

---------------------
|Id | Key    | Value|
---------------------
|1  | Name   | John |
|1  | Gender | Male | 
|1  | Country| U.S  |
|2  | Name   | Tom  |
|2  | Gender | Male |
|2  | Country| Cuba |
---------------------

我想重塑这些数据,以便我可以得到这个:

------------------------
|Id|Name|Gender|Country|
------------------------
|1 |John|Male  |U.S    |
|2 |Tom |Male  |Cuba   |
------------------------

Java程序员如何实现这种转变?

3 个答案:

答案 0 :(得分:1)

这通常可以通过使用adapter design pattern来完成,{{3}}负责封装数据并为字段提供不同的接口。

否则,您可以通过查看起始对象并以您喜欢的格式转换字段来创建新对象。

答案 1 :(得分:0)

不直接。 R更侧重于数据,而Java更像是一种通用语言,缺少一些不同的特定功能。你可以自己编程;或使用“ETL”(提取,转换,加载)工具,如水壶http://kettle.pentaho.com/

答案 2 :(得分:0)

让SQL为你做。假设您的表名为“foo”:

Select name.id, name.value, gender.value, country.value 
-- 3 views of 'foo', one for names, 2nd for gender, 3rd for country
from foo as name, foo as gender, foo as country 
-- restricting each view to its purpose
where name.key='Name' and gender.key='Gender' and country.key='Country'
-- joining the 3 views together
and name.id=gender.id and name.id=country.id