热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Alink使用技巧:如何使用批式CSV数据读取?

Alink是基于Flink的机器学习算法平台,欢迎访问Alink的GitHub获取更多信息。本文主要分享Alink的使用技巧之一,如何使用批式CSV进行数据读取。基本操作我们先下载


Alink 是基于 Flink 的机器学习算法平台,欢迎访问 Alink 的 GitHub 获取更多信息。本文主要分享 Alink 的使用技巧之一,如何使用批式 CSV 进行数据读取。


基本操作


我们先下载个 csv 文件用作后面的测试数据。


将数据文件下载到本地,文件路径为 /Users/yangxu/flinkml/data/iris/iris.data,使用文本编辑器打开如下所示,每行为一条数据,每条数据包括4个数值字段和一个字符串字段,各字段间使用逗号分隔。



数据下载


http://archive.ics.uci.edu/ml...


读取本地数据


使用 CsvSourceBatchOp 可以批式读 CSV 格式文件,其必填的两个参数为:filePath 和 schemaStr。filePath 为 CSV 格式文件所在的路径;schemaStr 为数据各字段的名称和类型。关于 Schema String 更多的介绍可以参见:



Alink Schema String简介


https://zhuanlan.zhihu.com/p/...

可以使用如下脚本,读取数据,并取前5条数据打印显示出来。


source_local = CsvSourceBatchOp()\
.setFilePath("/Users/yangxu/flinkml/data/iris/iris.data")\
.setSchemaStr("sepal_length double, sepal_width double, petal_length double, petal_width double, category string")
source_local.firstN(5).print()

数据打印显示如下:



注意:CsvSourceBatchOp 必填的参数 filePath 和 schema 进行赋值,filePath 为本地文件存储路径"/Users/yangxu/flinkml/data/iris/iris.data",schema 为 iris 数据集的列名和类型信息,共有5个字段:sepal_length, sepal_width, petal_length, petal_width, category;其数据类型分别为 double, double, double, double, string。


读取网络数据


相对于前面介绍的读取本地 CSV 数据,我们只需将数据存储路径参数 filePath,赋值为 http 路径地址即可。脚本如下:


source_url = CsvSourceBatchOp()\
.setFilePath("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data")\
.setSchemaStr("sepal_length double, sepal_width double, petal_length double, petal_width double, category string")
source_url.firstN(5).print()

数据打印显示如下:



参数详细说明


Alink CsvSourceBatchOp 提供了丰富的读取功能,具体内容可以参阅其参数说明文档:


https://github.com/alibaba/Al...


更复杂的例子


对于葡萄酒品质数据集,我们将其下载达到本地,可以看到其文件内容。



数据下载


http://archive.ics.uci.edu/ml...


第一行为数据列名的说明,第二行开始是数据,可以看到都是数值类型,各个数之间用分号“;”进行分隔。


我们可以通过设置参数 ignoreFirstLine 为 True,略过第一行;并且可以设置字段分隔符参数 fieldDelimiter 为分号“;”。另外,由于列名不能包含空格,所以由文件第一列转化来的列名需要进行相应处理,这里我们将其写为驼峰形式;并加上数据类型,这里都是 double 类型,构成了数据集的 SchemaStr。具体的脚本如下:


wine_url = CsvSourceBatchOp()\
.setFilePath("http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv")\
.setSchemaStr("fixedAcidity double,volatileAcidity double,citricAcid double,residualSugar double,"+\
"chlorides double,freeSulfurDioxide double,totalSulfurDioxide double,density double,"+\
"pH double,sulphates double,alcohol double,quality double")\
.setFieldDelimiter(";")\
.setIgnoreFirstLine(True);
wine_url.firstN(5).print()

数据打印显示如下:



可以看到由于每行的数据较多,在显示的时候进行了分段显示,每段数据可以由其最左方的行索引编号关联。


扫码关注「 流计算Alink 」,获取更多机器学习干货





推荐阅读
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • C#编程指南:实现列表与WPF数据网格的高效绑定方法 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • Android ListView 自定义 CheckBox 实现列表项多选功能详解
    本文详细介绍了在Android开发中如何在ListView的每一行添加CheckBox,以实现列表项的多选功能。用户不仅可以通过点击复选框来选择项目,还可以通过点击列表的任意一行来完成选中操作,提升了用户体验和操作便捷性。同时,文章还探讨了相关的事件处理机制和布局优化技巧,帮助开发者更好地实现这一功能。 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
author-avatar
SREFLANKCWF
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有