【译】Apache spark 2.4:内置 Image Data Source的介绍

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 主要介绍Apache Spark 2.4版本内置Image Data Source数据源

Apache spark 2.4:内置 Image Data Source的介绍

[原文链接](https://databricks.com/blog/2018/12/10/introducing-built-in-image-data-source-in-apache-spark-2-4.html

引言

图片分类以及对象检测的深度学习框架的发展使得在apache spark急需支持图片数据处理流程,在支持图片处理流程需要考虑到以下问题:处理不同格式, 大小以及色彩的图片, 如何快速检测图片处理的正确性。
通过图片数据源提供的标准图片抽象可以解决在图片数据处理过程中遇到的大部分问题,在Apache Spark 2.3中,MMLSpark 库提供ImageSchema.readImages API(see Microsoft’s post Image Data Support in Apache Spark)来处理图片数据, 在Apache Spark 2.4中,图片数据作为内置数据源将更易使用,用户可以该内置数据源从目录中批量导入图片进行数据处理。这篇博客主要图片数据源以及如何在databricks的产品里面使用该数据源。

图片导入

首先介绍通过Image Data Source如何将图片数据导入到Spark中,下面是PySpark的代码示例, 在Scala,Java以及R语言中也存在类似的API。

image

mage Data Source路径可以支持递归路径格式,如/path/to/dir/** , 也可以指定特定的分区目录, 如/path/to/dir/date=2018-01-02/category=automobile

图片模式

图片导入到Spark中是以DataFram列的形式存在的,该列包含了以下属性:

image

其中nChannels 表示color channels的数量,对于灰度图片该配置为1,彩色图片该配置为3, mode类型是整型数据, 指定数据类型以及数据通道顺序,其代表的类型一般都会有对应的OpenCV类型,具体的对应关系如下图所示:

image

通道顺序:

通道顺序指定了图片色彩的存储顺序,例如对于红,蓝,绿三通道的图片,存在6种不同的排列顺序,大部分库使用RGB或者BGR的顺序进行存储,OpenCV采用BGR的顺序进行存储。

代码示例

Deep Learning Pipelines 0.4版本之后,使用上述图片模式代替Deep Learning Pipelines项目的图片模式,,对于Deep Learning Pipelines的开发者,新的图片模式通道顺序已经从RGB更改为BGR,因此部分API需要显示指定通道顺序,下面是构建图片分类器的python代码示例:

image

下一步

现阶段通过df.smaple对DataFrame进行抽样是没有优化的,每次抽样需要读取全部图片,下一步将通过下推抽样算子到图片数据源这一层,避免读取全部图片数据,该功能将会在DataSource V2中进行发布。

相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
目录
相关文章
|
6月前
|
分布式计算 大数据 数据处理
Apache Spark:提升大规模数据处理效率的秘籍
【4月更文挑战第7天】本文介绍了Apache Spark的大数据处理优势和核心特性,包括内存计算、RDD、一站式解决方案。分享了Spark实战技巧,如选择部署模式、优化作业执行流程、管理内存与磁盘、Spark SQL优化及监控调优工具的使用。通过这些秘籍,可以提升大规模数据处理效率,发挥Spark在实际项目中的潜力。
486 0
|
30天前
|
分布式计算 大数据 Apache
利用.NET进行大数据处理:Apache Spark与.NET for Apache Spark
【10月更文挑战第15天】随着大数据成为企业决策和技术创新的关键驱动力,Apache Spark作为高效的大数据处理引擎,广受青睐。然而,.NET开发者面临使用Spark的门槛。本文介绍.NET for Apache Spark,展示如何通过C#和F#等.NET语言,结合Spark的强大功能进行大数据处理,简化开发流程并提升效率。示例代码演示了读取CSV文件及统计分析的基本操作,突显了.NET for Apache Spark的易用性和强大功能。
36 1
|
4月前
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
150 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
3月前
|
分布式计算 Hadoop 大数据
大数据处理框架在零售业的应用:Apache Hadoop与Apache Spark
【8月更文挑战第20天】Apache Hadoop和Apache Spark为处理海量零售户数据提供了强大的支持
65 0
|
3月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
205 0
|
4月前
|
分布式计算 Apache Spark
|
5月前
|
分布式计算 大数据 数据处理
Apache Spark在大数据处理中的应用
Apache Spark是大数据处理的热门工具,由AMPLab开发并捐赠给Apache软件基金会。它以内存计算和优化的执行引擎著称,提供比Hadoop更快的处理速度,支持批处理、交互式查询、流处理和机器学习。Spark架构包括Driver、Master、Worker Node和Executor,核心组件有RDD、DataFrame、Dataset、Spark SQL、Spark Streaming、MLlib和GraphX。文章通过代码示例展示了Spark在批处理、交互式查询和实时数据处理中的应用,并讨论了其优势(高性能、易用性、通用性和集成性)和挑战。【6月更文挑战第11天】
138 6
|
5月前
|
分布式计算 Spark 大数据
深入探究Apache Spark在大数据处理中的实践应用
【6月更文挑战第2天】Apache Spark是流行的开源大数据处理框架,以其内存计算速度和低延迟脱颖而出。本文涵盖Spark概述、核心组件(包括Spark Core、SQL、Streaming和MLlib)及其在数据预处理、批处理分析、交互式查询、实时处理和机器学习中的应用。通过理解Spark内部机制和实践应用,可提升大数据处理效率,发挥其在各行业的潜力。
|
5月前
|
消息中间件 分布式计算 关系型数据库
使用Apache Spark从MySQL到Kafka再到HDFS的数据转移
使用Apache Spark从MySQL到Kafka再到HDFS的数据转移
|
6月前
|
消息中间件 分布式计算 Serverless
CDC一键入湖:当 Apache Hudi DeltaStreamer 遇见 Serverless Spark
CDC一键入湖:当 Apache Hudi DeltaStreamer 遇见 Serverless Spark
117 2

推荐镜像

更多