《Clojure数据分析秘笈》——2.11节解析自定义数据格式

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

本节书摘来自华章社区《Clojure数据分析秘笈》一书中的第2章,第2.11节解析自定义数据格式,作者(美)Eric Rochester,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.11 解析自定义数据格式
如果你处理的数据足够长,你最终会遇到没有任何库能处理的,你需要编写自己的解析器。对于一些格式而言正则表达式就足够了,但是如果你需要保持输入中的句法结构平衡或对输出做一些复杂的工作,最好创建一个自定义的解析器。对于数据量大的输入自定义解析器会比正则表达式处理速度慢,但有时它们仍是最好的选项。
Clojure语言(以及大多数函数式编程语言)适合解析,并且多数包含可以极度简化编写解析器的解析器连接库。
在本方法中,作为需要解析的数据格式的例子,处理一些FASTA数据(http://en.wikipedia.org/wiki/FASTA_format)。FASTA是一种在生物信息学中交换核甘酸和缩氨酸序列中使用的数据格式。当然已有这类数据的解析器,但简易性和自定义的数据格式使其成为本方法中合适的样例。
FASTA数据的第一行以一个>符号开头,后跟一个唯一的标识符。这一行中通常包含样本的其他描述信息、它来自的数据库以及其他信息。关于FASTA数据的更详细的解释在http://www.ncbi.nlm.nih.gov/BLAST/blastcgihelp.shtml中。一条FASTA记录如下:


fd109344f74e3e5614e9294da4836bf12ae98607


5760c592ae00f052a5d23fd57636ccb0269cecf4

2.11.3 实现原理
从最抽象的层次上来说,解析器是函数。它们以字符串为输入返回一种数据结构。更复杂一点,通过组合较简单的元素构建高级的解析器。
<|函数是一个很好的例子。它本身并不解析任何内容。然而,它通过以一种有效的方式将另外两个解析器结合起来:它解析两部分内容并将第二部分的结果舍弃。
acid-code函数是从基本部件构建解析器的例子。它匹配集合中的任意字符。
接着acid-code-line结合acid-code解析器。它匹配一个或多个acid-code字符,有的包含换行符。它使用<|连接器丢弃新的一行并返回acid-codes的序列。
整个解析器由简单的部分组成复杂的结构。尽管这是一个非常基础的解析器,但是可以按这种方式创建更为复杂的解析器,利用Clojure的强大功能使代码具有高可读性和可维护性。

相关文章
|
2月前
|
XML Java Android开发
Android实现自定义进度条(源码+解析)
Android实现自定义进度条(源码+解析)
69 1
|
2月前
|
域名解析 网络协议 Serverless
阿里云DNS常见问题之阿里云DNS不再支持自定义NS名称功能如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
2月前
|
监控 网络协议 安全
阿里云DNS常见问题之阿里云DNS的自定义线路用途不知道如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
2月前
|
SQL Java 数据库连接
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
数据科学项目实战:完整的Python数据分析流程案例解析
【4月更文挑战第12天】本文以Python为例,展示了数据分析的完整流程:从CSV文件加载数据,执行预处理(处理缺失值和异常值),进行数据探索(可视化和统计分析),选择并训练线性回归模型,评估模型性能,以及结果解释与可视化。每个步骤都包含相关代码示例,强调了数据科学项目中理论与实践的结合。
|
5天前
|
存储 数据挖掘 OLAP
阿里云 EMR Serverless StarRocks OLAP 数据分析场景解析
阿里云 E-MapReduce Serverless StarRocks 版是阿里云提供的 Serverless StarRocks 全托管服务,提供高性能、全场景、极速统一的数据分析体验,具备开箱即用、弹性扩展、监控管理、慢 SQL 诊断分析等全生命周期能力。内核 100% 兼容 StarRocks,性能比传统 OLAP 引擎提升 3-5 倍,助力企业高效构建大数据应用。本篇文章对阿里云EMR Serverless StarRocks OLAP 数据分析场景进行解析、存算分离架构升级以及 Trino 兼容,无缝替换介绍。
40 1
|
10天前
|
数据采集 机器学习/深度学习 数据可视化
完整的Python数据分析流程案例解析-数据科学项目实战
【7月更文挑战第5天】这是一个Python数据分析项目的概览,涵盖了从CSV数据加载到模型评估的步骤:获取数据、预处理(处理缺失值和异常值、转换数据)、数据探索(可视化和统计分析)、模型选择(线性回归)、训练与评估、优化,以及结果的可视化和解释。此流程展示了理论与实践的结合在解决实际问题中的应用。
25 1
|
1月前
|
运维 网络协议 JavaScript
Serverless 应用引擎产品使用合集之绑定自定义域名是否要确定解析设置
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
数据采集 数据可视化 数据挖掘
利用 DataFrame 进行数据分析:实战案例解析
【5月更文挑战第19天】DataFrame是数据分析利器,本文通过一个销售数据案例展示其使用:读取数据创建DataFrame,计算产品总销量,分析月销售趋势,找出最畅销产品,并进行数据可视化。此外,还提及数据清洗和异常处理。DataFrame为数据处理、分组计算和可视化提供便利,助力高效数据分析。
58 3
|
1月前
|
存储 算法 搜索推荐
深入解析力扣179题:最大数(自定义排序法详解及模拟面试问答)
深入解析力扣179题:最大数(自定义排序法详解及模拟面试问答)

推荐镜像

更多