Google Analytics数据集映射

时间:2016-10-05 20:54:40

标签: list scala google-analytics mapping filtering

我有来自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值,或者它们可能是pViewsuViews的有效重复项数据仍然相关。

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
            )
        )
    )
)

因此,它已将所有重复数据按月分组数据。日期值。

我很难绕过这些问题,所以我真的很感激任何一种帮助。 提前谢谢。

0 个答案:

没有答案