Spark 2.4 支持图片格式数据源了

栏目: 编程工具 · 发布时间: 4年前

内容简介:Spark2.4开始支持内置的图片数据源读取器,可以直接读取图片的数据。目录可以还可以是/path/to/dir/**和分区目录。读取的数据会生成一个DF,该DF就一列列名字叫做 image。但是其实他是个嵌套数据结构,具体结构如下:

Spark2.4开始支持内置的图片数据源读取器,可以直接读取图片的数据。

val df = spark.read.format("image").load("/opt/pic/")

目录可以还可以是/path/to/dir/**和分区目录。

Image Schema

读取的数据会生成一个DF,该DF就一列列名字叫做 image。但是其实他是个嵌套数据结构,具体结构如下:

<span>root</span>

<span>|-- image: <span>struct</span> (<span>nullable</span> = <span>true</span>)</span>

<span>| |-- origin: string (<span>nullable</span> = <span>true</span>)</span>

<span>| |-- height: integer (<span>nullable</span> = <span>true</span>)</span>

<span>| |-- width: integer (<span>nullable</span> = <span>true</span>)</span>

<span>| |-- nChannels: integer (<span>nullable</span> = <span>true</span>)</span>

<span>| |-- mode: integer (<span>nullable</span> = <span>true</span>)</span>

<span>| |-- data: binary (<span>nullable</span> = <span>true</span>)</span>

orgin:代表图片的路径。

nChannels:颜色通道的数量。对于灰度图像,典型值为1,对于彩色图像(例如,RGB),典型值为3,对于具有alpha通道的彩色图像,典型值为4。

mode:整数标志,提供有关如何解释数据字段的信息。它指定数据存储的数据类型和通道顺序。希望(但不强制)字段的值映射到下面显示的OpenCV类型之一。OpenCV类型定义为1,2,3或4个通道,并为像素值定义了几种数据类型。通道顺序指定颜色的存储顺序。例如,如果有一个包含红色,蓝色和绿色组件的典型三通道图像,则有六种可能的排序。大多数库使用RGB或BGR。希望三(4)个通道OpenCV类型为BGR(A)顺序。

OpenCV中的类型到数字的映射(数据类型x通道数)

Spark 2.4 支持图片格式数据源了

data:以二进制格式存储的图像数据。图像数据表示为具有尺寸形状(高度,宽度,n通道)和由schema字段指定的类型t的数组值的三维阵列。该数组以row-major顺序存储。

通道顺序(channel order)

通道顺序指定存储颜色的顺序。例如,如果您有一个包含红色,蓝色和绿色组件的典型三通道图像,则有六种可能的排序。大多数库使用RGB或BGR。预计三(4)个通道OpenCV类型为BGR(A)顺序

案例

对于有监督学习,可以用label作为分区列,目前label仅仅支持数字类型。

Spark 2.4 支持图片格式数据源了

<span><span>val</span> spark = SparkSession</span>

<span> .builder()</span>

<span> .appName(<span>&quot;Spark reads pics&quot;</span>)</span>

<span> .master(<span>&quot;local[2]&quot;</span>)</span>

<span> .getOrCreate()</span>

<span><br /></span>

<span>val df = spark.read.format(<span>&quot;image&quot;</span>).load(<span>&quot;/opt/pic&quot;</span>)</span>

<span><br /></span>

<span>df.printSchema()</span>

<span>df.<span>select</span>(col(<span>&quot;label&quot;</span>),</span>

<span> col(<span>&quot;image.origin&quot;</span>),</span>

<span> col(<span>&quot;image.height&quot;</span>),</span>

<span> col(<span>&quot;image.width&quot;</span>),</span>

<span> col(<span>&quot;image.nChannels&quot;</span>),</span>

<span> col(<span>&quot;image.mode&quot;</span>)).show(<span>1</span>,<span>false</span>)</span>

<span><br /></span>

<span>spark.stop()</span>

Spark 2.4 支持图片格式数据源了

关于图片处理,目前spark支持的算法并不是很多,希望后续版本继续完善吧。

数据下载地址

http://download.tensorflow.org/example_images/flower_photos.tgz

750好友一起学习大数据了~

Spark 2.4 支持图片格式数据源了


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

金融数量分析

金融数量分析

郑志勇 / 北京航空航天大学出版社 / 2014-7-1 / CNY 58.00

《金融数量分析——基于MATLAB编程(第3版)》一书中的案例均来源于作者的工作实际,并充分体现“案例的实用性、程序的可模仿性”,程序中附有详细的注释。例如,投资组合管理、KMV模型计算、期权定价模型与数值方法、风险价值VaR的计算等案例程序,读者可以直接使用或根据需要在源代码的基础上修改、完善。 本书共23章。前两章分别对金融市场的基本概况与MATLAB的基础知识进行概述;接下来为20个金......一起来看看 《金融数量分析》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具