各位好,我是菜鸟小明哥,movielens数据是常见的推荐方面的开源数据集,另一个推荐方面的数据集是新闻MIND,本文将从movielens再次出发,做基础的推荐方法,比如基本的基于标题的相似性,word2vector,ALS,等等,以及NLP方面的推荐。

For deep learning QQ Second Group 629530787

I'm here waiting for you

如题,本文只说读取txt文件,java读取及spark读取为rdd

1,测试string基本属性,这样就可以与py对齐了

//相加及打印字符char
String ksc="m1k3jd";//new String("939dkkw")String bsc ="te102id0";String vsc = ksc + bsc;System.out.println(vsc);for (int ii=0;ii<vsc.length();ii++)System.out.println(vsc.charAt(ii));
//相加后返回
public static String addString(String a, String b) {
//        return new String(a+b);return a+b;}
//这两种方法都可以,没发现差别

2,java一般读取方法

鉴于java没有办法设置默认参数,就不再重载设置了(再写一遍这个函数),因此不要默认参数了。另外,读取文件可能会有异常(1,找不到文件;2,解码错误),java要求

java: 未报告的异常错误java.io.IOException; 必须对其进行捕获或声明以便抛出

public static void readTXT(String file,String encoding) {File fil=new File(file);try {InputStreamReader reader = new InputStreamReader(new FileInputStream(fil), encoding);BufferedReader buffReader = new BufferedReader(reader);if (fil.isFile()&&fil.exists()){String line;while ((line= buffReader.readLine())!=null){System.out.println(line);}}}catch (FileNotFoundException e){System.out.println("file not found");}catch (UnsupportedEncodingException e) {System.out.println("encoding is not right");//throw new RuntimeException(e);} catch (IOException e) {System.out.println("reading file ups error");//throw new RuntimeException(e);}}

当我采用UTF-8进行解码发现并没有报错,我擦,而py则不行,需要"ISO-8859-1"解码。

将上面的打印行注释,其他不变,结果发现并没有上面的catch抛出,而且行数相同。都是3883

3,解析每行的数据:一般方法

最笨我直接split也就行了啊,每行存一个String数组,OJBK

        String vsc3=new String("6::Heat (1995)::Action|Crime|Thriller");String res[]=vsc3.split("::");for (String resi :res)System.out.println(resi);

4, 序列化接口Serializable(可以继承这个,也可自己写)

一般是读取文件(需要预先知道数据存储格式/形式)或者保存数据,转换数据格式之用。

上面2中只是读取了一下,并没有转换格式,下面采用读取每行的细节,

public static class Serialize{private int movieId;private String title;private String tag;public Serialize(){}//构造函数public Serialize(int movieId,String title,String tag){this.movieId=movieId;this.title=title;this.tag=tag;}public static Serialize parseSerialize(String string){String[] str3=string.split("::");int movieId;String title,tag;movieId = Integer.parseInt(str3[0]);title=str3[1];tag=str3[2];return new Serialize(movieId,title,tag);}}

使用记录:

Serialize example = Serialize.parseSerialize(vsc3);System.out.println(example.movieId+","+example.title+","+example.tag);

5,spark-rdd读取

注意设置以下环境不然报错,我的是java-18 MacPro,Idea C

螺丝刀那里进去,modify options add VM options,不设置就会报错。

 --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED

代码如下:也参考了这个资料

4中写的class没有问题,但在spark中如果需要读取列就不行了,因为没有写读取列的方法。如下:不写这方法,spark-rdd读取不到数据

public int getMovieId3(){return movieId;}public String getTitle3(){return title;}public String getTag3(){return tag;}

spark读取txt文件代码:

SparkConf conf = new SparkConf().setAppName("JavaALS001").setMaster("local[*]");JavaSparkContext sc = new JavaSparkContext(conf);JavaRDD<String> distFile = sc.textFile(file);JavaRDD<Serialize> rdd = distFile.map(new Function<String,Serialize>(){public Serialize call(String s) {return Serialize.parseSerialize(s);}});SQLContext sqlContext = new SQLContext(sc);Dataset<Row> df = sqlContext.createDataFrame(rdd,Serialize.class);df.show(12);

结果如下:列名是不是和上面的方法名字一样

愿我们终有重逢之时,

而你还记得我们曾经讨论的话题。

java读取movielens数据txt相关推荐

  1. JAVA读取Excel数据

    JAVA读取Excel数据 下载 jxl.jar 导入jxl.jar 读取程序 写入Excel 写入txt 下载 jxl.jar 找到一个博主发的,下载好后去掉.zip后缀 jxl.jar下载 - 天 ...

  2. Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...

    原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...

  3. Java读取Excel数据:基于Apache POI(一)

    Java读取Excel数据:基于Apache POI(一) Java本身不支持直接读取微软的Excel表格数据.第三方的Apache提供了一个库POI用以支持Java读写Excel表格数据. 首先需要 ...

  4. 项目实战 Java读取Excel数据

    项目实战 Java读取Excel数据 前言 实现步骤 导入POI依赖 示例Excel表结构 编写读取Excel工具类 实现思路 读取Excel数据工具类实现代码 取出从excel中获取的数据,并插入到 ...

  5. java读取二进制文件数据

    java读取二进制文件数据 1.读取文件信息 java提供多种读取方式: /*** 按字节读取文件数据* @param fileName 文件路径包括文件名*/public static void r ...

  6. Java读取串口数据

    本文主要实现读取员工刷卡信息 将淘宝买的刷卡IC卡读取器插入Windows笔记本的USB接口,安装驱动,设备管理器会自动添加一个模拟的COM3串口 本次使用的Java环境为 java version ...

  7. java 读取Excel数据(POI)(一个sheet或者多个sheet)

    1.添加依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml< ...

  8. java 读取串口数据

    串口资料 链接:https://pan.baidu.com/s/1jVO47WF7pCO6kDLezsBZ0g 提取码:hgwn 这段时间遇到了读取串口数据的需求,吭哧吭哧搞了两三天才搞出来,惭愧,所 ...

  9. java读取字符串,生成txt文件

    /*** 读取字符串,生成txt 文件 已解决未设置编码时,在项目中直接打开文件,中文乱码问题* WriteText.writeToText(musicInfo,fileName)直接调用* * @a ...

  10. Java读取xml数据

    xml中的代码 <?xml version="1.0" encoding="UTF-8"?><books id="aaa" ...

最新文章

  1. 不能跳过的《程序员的职业素养》(The Clean Coder)中的一个章节
  2. Greenplum添加mirror步骤
  3. spring连数据库的配置文件(applicationContext.xml)
  4. 【转】PCA算法学习_1(OpenCV中PCA实现人脸降维)
  5. php有哪些开源社区,PHP开源社区
  6. bes配置oracle数据源,安装 ZFS 根文件系统(Oracle Solaris 初始安装)
  7. [LeetCode]Shortest Palindrome
  8. 海湾标准汉字码表查询_标准汉字码表
  9. Springboot入门到精通(超详细文档)
  10. 3、圆周运动与椭圆运动
  11. 微信小程序后台服务器搭建
  12. 米家扫地机器人尘盒怎么取_米家扫地机器人1S:从里到外全面提升 拥有超高性价比...
  13. 服务器flv文件播放不了,解决win2003服务器不能播放flv文件格式的问题
  14. 品搜妞——百度、谷狗、搜狗的女人三围
  15. C# Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
  16. AGV三种导航方式,苏州凌鸟带你走进AGV世界
  17. 事务压缩 对表的影响 compress for oltp
  18. 最初的承諾都抵不過時間的洗禮。
  19. 小米手机刷机和Xposed安装流程
  20. 滚动轮播图+滚动轮播图定时器的添加(还原lol首页的轮播图)

热门文章

  1. GB2312、GB18030、GBK、UNICODE、BIG5之间兼容关系
  2. 电子名片+在线商城=?现在居然可以用名片卖货了
  3. 鲲鹏BoostKit虚拟化使能套件,让数据加密更安全
  4. Visual Studio 2012下载安装方法
  5. 电梯控制线路实训考核系统
  6. C# PDF 静默打印
  7. 打印机无法打印测试页是什么原因
  8. 阿里矢量图标(字体图标)
  9. 能当「公务员」、服务员,商用服务机器人今年为啥这么火?
  10. 笔记--左耳朵耗子叔的成长经历