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

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

内容简介: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 支持图片格式数据源了


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

查看所有标签

猜你喜欢:

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

Head First Web Design

Head First Web Design

Ethan Watrall、Jeff Siarto / O’Reilly Media, Inc. / 2009-01-02 / USD 49.99

Want to know how to make your pages look beautiful, communicate your message effectively, guide visitors through your website with ease, and get everything approved by the accessibility and usability ......一起来看看 《Head First Web Design》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器