示例:demo数据
userId | place |
---|---|
1001 | 北京 |
1001 | 上海 |
spark建立的虚拟表 userPlaceView。根据用户ID进行分组,用collect_set(place)获取place信息。
spark sql 函数查询 地址
Dataset<Row> resultDataSet = SqlContext.sql("select userId, collect_set(place) as place from userPlaceView group by userId");
resultDataSet.javaRDD().map((Function<Row, UserPlaces>) f->{ //获取分组聚合后的place信息
//WrappedArray 开始
WrappedArray wrappedArray = (WrappedArray)f.get(1);
for(int i=0; i<wrappedArray.size(); i++){
WrappedArray data = (WrappedArray)wrappedArray.apply(i);
for(int z=0; z<data.size(); z++){
String place = (String)data.apply(z);
System.out.println(place);
}
}
......
});