【发布时间】:2019-12-06 08:25:32
【问题描述】:
我正在从 DB 中获取几个值,并希望从中创建一个嵌套的地图数据结构。表格数据如下所示
+---------+--------------+----------------+------------------+----------------+-----------------------+
| Cube_ID | Dimension_ID | Dimension_Name | Partition_Column | Display_name | Dimension_Description |
+---------+--------------+----------------+------------------+----------------+-----------------------+
| 1 | 1 | Reporting_Date | Y | Reporting_Date | Reporting_Date |
| 1 | 2 | Platform | N | Platform | Platform |
| 1 | 3 | Country | N | Country | Country |
| 1 | 4 | OS_Version | N | OS_Version | OS_Version |
| 1 | 5 | Device_Version | N | Device_Version | Device_Version |
+---------+--------------+----------------+------------------+----------------+-----------------------+
我想创建一个类似这样的嵌套结构
{
CubeID = "1": {
Dimension ID = "1": [
{
"Name": "Reporting_Date",
"Partition_Column": "Y"
"Display": "Reporting_Date"
}
]
Dimension ID = "2": [
{
"Name": "Platform",
"Column": "N"
"Display": "Platform"
}
]
},
CubeID = "2": {
Dimension ID = "1": [
{
"Name": "Reporting_Date",
"Partition_Column": "Y"
"Display": "Reporting_Date"
}
]
Dimension ID = "2": [
{
"Name": "Platform",
"Column": "N"
"Display": "Platform"
}
]
}
}
我使用以下方法从 DB 获得结果集。我能够填充各个列,但不确定如何创建地图以供以后计算
while (rs.next()) {
val Dimension_ID = rs.getInt("Dimension_ID")
val Dimension_Name = rs.getString("Dimension_Name")
val Partition_Column = rs.getString("Partition_Column")
val Display_name = rs.getString("Display_name")
val Dimension_Description = rs.getString("Dimension_Description")
}
我认为我应该为此编写一个案例类,但我不确定如何创建案例类并将值加载到案例类中。
感谢您的帮助。我可以提供任何其他需要的信息。告诉我
【问题讨论】:
-
感谢您的回复。表格中的大多数变量都是字符串。我不确定哪种数据结构最适合。我不喜欢使用列表,因为列将是未命名的。我还没有尝试过这些框架。
-
如果你想要命名事物,最好的选择是嵌套案例类。将 List 用于分组值。
标签: scala case-class