电影数据集的处理
2014-05-31 00:33
148 查看
最近将movielens数据集rate.dat原来格式:userid,itemid,rating,timestamp按要求转换为(userid,item1,item2....),按时间的前后展示用户的所以观看电影记录。我是首先将数据导入到mysql数据库,利用数据库的容易对数据排序的特点,将其按时间字段进行排序,将排序的查询结果导出到本地文件,
1 168 874965478
1 172 874965478
1 165 874965518
1 156 874965556
1 166 874965677
接下来,考虑将每一个用户的观看电影记录连接起来,运用java的hashmap进行处理
学到了StringBuilder清空的方法:sb.delete( 0, sb.length() );网上的一些帖子认为该清空方法最有效,开始一直傻B地用null来清空,结果一直报空指针错误,弄了很久,没找到原因。
最后用遍历hashmap将输出重定向到本地文本文件中:
遍历hashmap网上帖子推荐方法:
个人感觉这样处理有些麻烦,无奈编程技术有限,只想到了这样一个烂办法,往后还需要加强学习!
select userID,movieID,timestamp into outfile1 '/var/lib/mysql/outfile.txt' from movie_jieguo2 order by userID,timestamp;
1 168 874965478
1 172 874965478
1 165 874965518
1 156 874965556
1 166 874965677
接下来,考虑将每一个用户的观看电影记录连接起来,运用java的hashmap进行处理
public static void main(String[] args) { String line=null; StringBuilder sb=new StringBuilder(); Map<String,String> movie_time = new HashMap<String, String>(); try { LineNumberReader lineReader = new LineNumberReader(new FileReader("/home/grid/outfile1.txt")); while ((line = lineReader.readLine()) != null) { String[] ra = line.split("\t"); String userID=ra[0]; String itemID=ra[1]; if(movie_time.containsKey(userID)){ sb.append(itemID+" "); movie_time.put(userID,sb.toString()); } else{ sb.delete( 0, sb.length() ); sb.append(itemID+" "); movie_time.put(userID,sb.toString()); } } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();}
学到了StringBuilder清空的方法:sb.delete( 0, sb.length() );网上的一些帖子认为该清空方法最有效,开始一直傻B地用null来清空,结果一直报空指针错误,弄了很久,没找到原因。
最后用遍历hashmap将输出重定向到本地文本文件中:
遍历hashmap网上帖子推荐方法:
Iterator iter = movie_time.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); String key = entry.getKey().toString(); String val = entry.getValue().toString(); System.out.println(key+" "+val);
个人感觉这样处理有些麻烦,无奈编程技术有限,只想到了这样一个烂办法,往后还需要加强学习!
相关文章推荐
- 关于对数据集处理的通用函数
- 数据集的收集,处理
- 使用sort命令和awk命令对数据集的label进行处理
- 请教U盘上存储的电影只能看一半如何处理
- 大型数据集的分块处理
- 数据集处理成可视树,数据网格自动适应宽度
- 时间序列/信号处理开源数据集-转
- orcale存储过程 处理参数是以逗号组成的数据集
- TF-IDF的java实现(权重排序,可用来处理大数据集)
- 读coco数据集的代码接口了解segmentation的处理方法
- 【Tensorflow】怎样为你的网络预加工和打包训练数据?(二):小数据集的处理方案
- [Java][机器学习]用决策树分类算法对Iris花数据集进行处理
- 【机器学习】非平衡数据集的机器学习常用处理方法
- mnist数据集以及处理方式
- SSRS:关于成功部署报表后,在服务器预览时提示“报表服务器无法处理该报表或共享数据集”
- Hive数据分析——Spark是一种基于rdd(弹性数据集)的内存分布式并行处理框架,比于Hadoop将大量的中间结果写入HDFS,Spark避免了中间结果的持久化
- 数据挖掘-MovieLens数据集_电影推荐_亲和性分析_Aprioro算法
- 【Machine Learning】如何处理机器学习中的非均衡数据集?
- 《Spark机器学习》笔记——基于MovieLens数据集使用Spark进行电影数据分析
- bloom filter -- 处理大数据集的利器