我想知道Java是否以某种方式支持数据的“转换和熔化”。所谓“转换和熔化”,我指的是以R包重塑(或reshape2)的方式“重塑”数据。
因此,我有一个返回以下内容(在ResultSet中)的SQL查询:
---------------------
|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程序员如何实现这种转换?
发布于 2012-07-11 17:24:25
不是直接的。R更侧重于数据,而Java更像是一种通用语言,缺少一些各种特定的功能。您可以自己编写程序,也可以使用"ETL“(提取、转换、加载)工具,如Kettle http://kettle.pentaho.com/
发布于 2012-07-11 17:19:07
这通常可以通过使用来完成,它负责封装数据并为字段提供不同的接口。
否则,您可以通过修改起始对象并将字段转换为您喜欢的格式来创建新对象。
发布于 2012-07-11 17:49:18
让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
https://stackoverflow.com/questions/11437922
复制相似问题