我有来自Google Analytics的数据集我很难映射到可以在制作中使用的有用的东西。
原始数据是一个案例类对象列表,如下所示:
case class Stats(id: String, date: Int, pViews: Int, uViews: Int)
我已经开始制作像这样的对象列表:
val skuMatch = "[A-Z][0-9]{10}".r
val mappedRaw = rawData
.map(row => {
val idCheck = idMatch.findFirstIn(row.getDimensions()(1))
val id = if (idCheck.isDefined) idCheck.get else ""
val date = row.getDimensions()(0).toInt
val pViews = row.getMetrics()(0).getValues()(0).toInt
val uViews = row.getMetrics()(0).getValues()(1).toInt
Stats(id, date, pViews, uViews)
}).filter(!_.id.isEmpty)
}
所以现在我有一个" clean"所以没有空脏,价值观。对象可能如下所示:
Stats("A0000000008", 201608, 10, 1)
现在,该列表包含多个具有相同id
值的对象,因为它们具有不同的date
值,或者它们可能是pViews
和uViews
的有效重复项数据仍然相关。
Stats("A0000000008", 201609, 12, 5)
Stats("A0000000008", 201609, 8, 2)
因此,我的问题是,我如何制作一个如下所示的结构:
case class DataMonth(monthYear: Int, uViews: Int, pViews: Int)
case class NewStats(id: String, months: List(DataMonth))
示例对象:
List(
NewStats(
"A0000000008",
List(
DataMonth(
201608,
10,
1
),
DataMonth(
201609,
20,
7
)
)
)
)
因此,它已将所有重复数据按月分组数据。日期值。
我很难绕过这些问题,所以我真的很感激任何一种帮助。 提前谢谢。