【非结构化数据处理】java读取txt 进行初步分析

这学期参加了服务外包大赛,具体要实现对非结构化数据的分析处理,所以在这里把这个过程一点点记录一下。

首先根据python的爬虫框架,从网页上获取了中文文本
来自队友的爬虫获取的文本
但是由于我不怎么会处理中文数据,摸索了很久,简单的通过java的substring把数据分开

package se;
import java.io.File;  
import java.io.InputStreamReader;  
import java.io.BufferedReader;  
import java.io.BufferedWriter;  
import java.io.FileInputStream;  
import java.io.FileWriter;  

public class sdf {  
    public static void main(String args[]) {  
        try { 
            String pathname = "info.txt"; 
            File filename = new File(pathname);
            InputStreamReader reader = new InputStreamReader(  
                    new FileInputStream(filename)); 
            BufferedReader br = new BufferedReader(reader);
            String line = "";  
            File writename = new File("output1.txt"); // 相对路径,如果没有则要建立一个新的output。txt文件  
            writename.createNewFile(); // 创建新文件  
            BufferedWriter out = new BufferedWriter(new FileWriter(writename));  

            line = br.readLine();  
            // System.out.println(line);
            out.write(line);
            out.write("\r\n");
            out.write(" \r\n");
             while (line != null) {  
                 line = br.readLine(); // 一次读入一行数据  
               //  System.out.println(line);
                 int b=0;

                 for(int i=0;i<line.length();i++)
                 {
                    if(line.substring(i,i+1).equalsIgnoreCase(":"))
                        b=i;

                 }
                 // System.out.println(b);
                 // System.out.println(line.length());
                 if(b==0||b==line.length()-1)continue;
                 else
                 {
                    System.out.print(line.substring(0,b));
                    out.write(line.substring(0,b));
                    //out.flush();
                    for(int i=1;i<=20-b;i++)
                    {
                    System.out.printf("   ");
                    out.write("   ");
                    }
                    System.out.print(line.substring(b+1, line.length()));
                    out.write(line.substring(b+1, line.length()));
                    out.write("\r\n");
                    //System.out.printf("\t");
                    System.out.printf("\n");
                    out.flush();
                 }
                 //System.out.println(b);
             }  

            out.close(); // 最后记得关闭文件  

        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}  

处理后的样式

然后再将数据分开,由于中间有空格,导入到excel中
数据表格

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
每天都有着大量的用户关注各类新闻,特别是随着各种网络通信技术的发展,网络应用的普及使得每时每刻都有着大量的人们通过网络进行各类新闻的搜索,产生海量的日志数据。过去使用单机的方式通过 MySQL数据库对这些数据进行存储,但是积累下来的用户日志数据量达到了一定的级别,当一台电脑无法存储这么庞大的数据时,就产生了海量数据的存储问题。如果使用网络文件系统对数据进行分开存储,那么就无法对大量的实时和离线数据进行分析处理处理结果也无法以一种更加直观的方式进行展示。 为了解决海量新闻日志数据的存储问题,在新闻业务中得到实时的用户搜索内容的排行并进行可视化显示,得到公众关注的重点,从而达到针对用户关注的重点进行推送、广告的投放、及时消除不良的用户等目的。本文在对以上需求进行调研后,通过Flume日志收集系统对各个服务器中的日志文件进行读取合并,并将数据划分成离线流数据和实时流数据两条路线。离线数据通过Hadoop集群处理、存储,通过Hive完成离线数据处理分析,并最终通过Hue实现对用户的可视化展示。实时流数据通过Kafka消息队列临时存储,并通过Spark流处理,最终将结果存放在 MySQL数据库中,通过Java程序获取,最终通过Echarts插件在前端对实时数据进行展示。 本文讲述了系统研究的背景、目的和意义。对系统所使用到的相关技术的原理进行了介绍;对系统进行了总体的需求分析并且按照系统实现的功能划分了相关模块;在进行了需求分析后,对系统进行了具体的硬件平台构建以及各个功能模块设计实现,最终完成对用户搜索日志数据的结构化处理和可视化展示。 最后对课题工作进行了总结,并分析了未来系统中可改进的地方。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值