解释一下为什么数据文件最好采用单字符作为字段分隔符
2013-09-29^_^21635265^_^测试标题^_^10^_^20^_^15
假设上面的例子是文本数据的其中一行。在这个例子中,列分隔符采用的是^_^(注意,是多字符的),字段定义分别是
发布日期^_^文章ID^_^文章标题^_^评论数^_^点击数^_^顶数
考虑到对数据中心的信任,我们忽略了“发布日期”、“文章ID”、“评论数”、“点击数”和“顶数”这些字段的非法情况,而将重点放在了分析标题上,因为标题是用户指定的,而可以输入任何可见字符,因此我们还考虑到了在文章中包含我们的分隔符的情况,所以在data.splite()之后采用了掐头去尾的算法,前两个字段正常分析,然后倒着来,从“顶数“,”点击数”和“评论数”分析,剩下的就是标题了。可是我们只考虑了标题中如下形式:
测试标题^_^、测试^_^标题、^_^测试标题
而没有考虑到这样的情况:
测试标题^_
也就是说标题中的末尾带有一半分隔符,这样从逻辑上和真正分隔符的前一半正好能拼成一个合理的分隔符,如:
2013-09-29^_^21635265^_^测试标题^_^_^10^_^20^_^15
所以在拆分字段的时候评论数字段就被拆成了“_^10”,这种情况下是没有办法将其转换为Integer类型的,故而报错。
说起来在这个项目中采用什么样的分隔符还是很早前其他同事定的,直到发生这个问题才觉得有必要改成单个字符,这样就不会产生歧义了。
后来在我用Excel导入其它数据进行分析的时候发现它早就注意到这个问题了,在指定自定义分隔符的时候只允许采用单字符:
解释一下为什么数据文件最好采用单字符作为字段分隔符相关推荐
- java解析comtrade文件_一种COMTRADE二进制数据文件的快速解析方法与流程
本发明涉及电子系统录波领域,更具体地,涉及一种COMTRADE二进制数据文件的快速解析方法. 背景技术: 近年来,随着电子技术的快速发展,电力系统暂态录波明显向高采样率.连续稳态记录和海量存储的趋势发 ...
- oracle 普通数据文件备份与恢复
普通数据文件指:非system表空间.undo_tablespace表空间.临时表空间和只读表空间的数据文件.它们损坏导致用户数据不能访问,不会导致db自身异常.实例崩溃.数据库不恢复就无法启动的情况 ...
- 超图导入ArcGIS数据文件
超图导入ArcGIS数据文件 一.下载 从超图官网下载SuperMap iDesktop 10i桌面工具 官方下载页 二.建立工作空间.空间数据库 空间数据库可使用MySQL外部数据库,也可使用文件型 ...
- QTableWidget大数据文件显示(1000万行数据)
参考: (1条消息) c/c++ qt如何快速的解析(300MB-1G)大文件_江南又旧雨的博客-CSDN博客 上文记录了QTextEdit显示1000万行的数据的开发过程,对于QTableWidge ...
- 表单及数据提交、表单的作用、服务端接收提交的数据、php处理数据流程、文件域及文件域中数据处理、php展示数据(响应)
表单及数据提交: 表单的作用: 用于收集相关信息:html中有专门提交数据的标签,可以很容易的收集用户输入的信息,这个标签有两个重要的属性:action表单提交的地址和method以什么方式提交表单, ...
- Hyper-V数据文件丢失解决方案(有图有真相)
一.Hyper-V虚拟化故障概述 1.虚拟机环境 故障虚拟化环境为ESXI虚拟化服务器,虚拟机环境,虚拟机的硬盘文件和配置文件放在北京某服务器托管公司的DELL MD3200存储中(存储由5块容量为6 ...
- MySQL初识-架构-安装-初始化-连接-管理工具-数据文件
MySQL架构和结构分析 官方架构图 内部组件结构图 MySQL安装方式 MySQL初始化 MySQL工作模式及常用命令 交互式模式:mysql> 1 2 3 4 5 6 7 8 9 10 11 ...
- mysql数据库熟悉表空间数据文件_MySQL数据文件介绍及存放位置
MySQL的每个数据库都对应存放在一个与数据库同名的文件夹中,MySQL数据库文件包括MySQL所建数据库文件和MySQL所用存储引擎创建的数据库文件. 1.MySQL创建并管理的数据库文件: .fr ...
- python打包和添加数据文件_python库打包分发setup.py编写指南
python库打包分发setup.py编写指南 python之所以强大,在于有许许多多的人贡献自己的力量,他们将自己开发的项目打包上传至pypi,这使得python社区有取之不尽用之不竭的第三方库.工 ...
最新文章
- MySQL查询语句中的IN 和Exists 对比分析
- 解决vs新建项目是模板丢失的问题
- [.NET Core].NET Core R2安装及示例教程
- linux的定制和发布(二)
- redis keys 模糊匹配_别找了,你要的Redis命令都在这了
- PAT 1064 朋友数
- 为什么分布式数据库中不使用uuid作为主键?
- Python Window10 环境安装流程
- 高质量代码命名规则 代码整洁之道
- 内部 CA 证书管理
- 数字人民币智慧学生证来了,对于特定群体硬钱包或大有可为
- [10.21][转贴][中国][成龙作品集34部][DVD-RMVB/16.2G][中文字幕/影片截图]
- 找不到工作的测试员一大把,大厂却招不到优秀软件测试员?高薪难寻测试工程师。
- 离DApp的爆发还差什么?|链捕手
- 中科大计算机考研录取分数线_计算机专业学校考研难度排行榜 计算机考研难度排名...
- java高校实验室预约管理系统
- 聊聊Android5.0中的水波纹效果
- 精读《素书》精彩语录及感悟篇(二)
- Centos75启动盘安装系统无法进入图形安装界面-提示dracut-pre-udev[348]:modprobe:ERROR: could not inset ‘edd‘
- 功率放大器设计方案(包含原理图+PCB+BOM表)