我的文件中只有3个事件(第3列)01、02、03。
架构是unixtimestamp | id | eventtype | date1 | date2 | date3
639393604950|1001|01|2015-05-12 10:00:18|||
639393604950|1002|01|2015-05-12 10:04:18|||
639393604950|1003|01|2015-05-12 10:05:18|||
639393604950|1001|02||2015-05-12 10:40:18||
639393604950|1001|03|||2015-05-12 19:30:18|
639393604950|1002|02|2015-05-12 10:04:18|||
在sqlcontext中,如何按id合并数据?我希望这是身份证1001:
639393604950|1001|01|2015-05-12 10:00:18|2015-05-12 10:40:18|2015-05-12 19:30:18|
以下是我需要调整的查询:
val events = sqlContext.sql("SELECT id, max(date1), max(date2), max(date3) " +
"FROM parquetFile group by id, date1, date2, date3")
events.collect().foreach(println)
2条答案
按热度按时间icnyk63a1#
6ovsh4lw2#
数据的生成方式,看起来文件中的模式很混乱。问题是所有日期都填充在date1字段中,具有不同的事件类型。因此,我们需要修复它。
当然,这将id和ts分组在一起,正如答案中预期的那样。