我想知道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程序员如何实现这种转变?
答案 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