《Clojure数据分析秘笈》——2.8节大数据集的延迟处理

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介:

本节书摘来自华章社区《Clojure数据分析秘笈》一书中的第2章,第2.8节大数据集的延迟处理,作者(美)Eric Rochester,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.8 大数据集的延迟处理
Clojure的一个卓越特性是它的大多数序列处理函数都是延迟处理的。这使得可以非常省力地处理大数据集。然而,当与从文件或其他输入设备读入的过程结合时,有很多需要注意的地方。
在本方法中,将介绍安全延迟读入CSV文件的几种方式。clojure.data.csv/read-csv默认就是延迟的,如何在正确时间关闭文件的同时保持这一特性呢?

2.8.1 准备工作
需要加载将在REPL中使用的库。使用以下命令完成:


423fde8b85ee5447f2ac0a61b9ece09e28ae171e

可以发现,当函数返回延迟序列时,还没有读入任何数据。但是当使用with-open形式退出时,文件自动关闭,发生了什么?
首先,文件被打开并传给read-csv函数,返回一个延迟序列。这个延迟序列被关闭文件的函数with-open返回。最后,REPL尝试将延迟序列输出到屏幕上。read-csv函数尝试从文件中读出数据。但在此时,文件已经关闭,因此抛出IOException。
这是编写函数时一个非常常见的问题。这个问题在我每次从数据库读数据时都会由于某些原因而出现。

  1. 为了修正这个问题,强制读入文件所有行:


0a93f292dee839082b4c35e6bab6d4784838056d

这个版本没问题。
2.8.3 实现原理
lazy-read-csv函数的最新版本起效是由于它读入csv/read-csv产生的延迟序列并将其装入另一个序列,当不再从CSV文件中读入时这个序列关闭输入文件。这个过程比较复杂是因为处理了两次层次的输入:读入文件和读入CSV。当上层的输入(读入CSV)完成时,将触发底层(读入文件)的操作。
然而,有了这个函数,又一次得到了一个简单好用的接口,将它提供给调用者并将其复杂的部分隐藏起来。
遗憾的是,这仍然有一个严重的问题:如果不打算读入整个文件,文件句柄不会关闭。在一些仅读入文件一部分的场景中,lazy-read-ok函数可能是最好的。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
9天前
|
机器学习/深度学习 数据采集 数据可视化
【python】python当当数据分析可视化聚类支持向量机预测(源码+数据集+论文)【独一无二】
【python】python当当数据分析可视化聚类支持向量机预测(源码+数据集+论文)【独一无二】
|
10天前
|
供应链 数据挖掘 Serverless
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
|
9天前
|
数据可视化 数据挖掘 索引
【python】Python马铃薯批发市场交易价格数据分析可视化(源码+数据集)【独一无二】
【python】Python马铃薯批发市场交易价格数据分析可视化(源码+数据集)【独一无二】
|
9天前
|
机器学习/深度学习 数据采集 数据可视化
【python】python母婴数据分析模型预测可视化(数据集+论文+PPT+源码)【独一无二】
【python】python母婴数据分析模型预测可视化(数据集+论文+PPT+源码)【独一无二】
|
10天前
|
数据采集 数据可视化 数据挖掘
【python】python海底捞门店营业数据分析与可视化(数据集+源码+论文)【独一无二】
【python】python海底捞门店营业数据分析与可视化(数据集+源码+论文)【独一无二】
|
11天前
|
监控 供应链 数据可视化
【python】python饮料销售数据分析可视化(源码+数据集)【独一无二】
【python】python饮料销售数据分析可视化(源码+数据集)【独一无二】
|
10天前
|
数据采集 数据可视化 数据挖掘
【python 】python 年度人口结构数据分析与可视化(源码+数据集)【独一无二】
【python 】python 年度人口结构数据分析与可视化(源码+数据集)【独一无二】
|
10天前
|
存储 数据可视化 数据挖掘
【python】python企业财务能力数据分析可视化(源码+报告+数据集)【独一无二】
【python】python企业财务能力数据分析可视化(源码+报告+数据集)【独一无二】
|
10天前
|
数据采集 存储 数据可视化
【python】python超市销售订单数据分析可视化(源码+数据集)【独一无二】
【python】python超市销售订单数据分析可视化(源码+数据集)【独一无二】
|
10天前
|
数据采集 数据可视化 数据挖掘
【python】python葡萄酒国家分布情况数据分析pyecharts可视化(源码+数据集+论文)【独一无二】
【python】python葡萄酒国家分布情况数据分析pyecharts可视化(源码+数据集+论文)【独一无二】

热门文章

最新文章