Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Spark2.4支持图片格式数据源了~

Spark2.4支持图片格式数据源了~

作者头像
Spark学习技巧
发布于 2019-05-31 08:17:05
发布于 2019-05-31 08:17:05
80300
代码可运行
举报
文章被收录于专栏:Spark学习技巧Spark学习技巧
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val df = spark.read.format("image").load("/opt/pic/")

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

Image Schema

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root|-- image: struct (nullable = true)|    |-- origin: string (nullable = true)|    |-- height: integer (nullable = true)|    |-- width: integer (nullable = true)|    |-- nChannels: integer (nullable = true)|    |-- mode: integer (nullable = true)|    |-- data: binary (nullable = true)

orgin:代表图片的路径。

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

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

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

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

通道顺序(channel order)

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

案例

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val spark = SparkSession  .builder()  .appName("Spark reads pics")  .master("local[2]")  .getOrCreate()
val df = spark.read.format("image").load("/opt/pic")
df.printSchema()df.select(col("label"),  col("image.origin"),  col("image.height"),  col("image.width"),  col("image.nChannels"),  col("image.mode")).show(1,false)
spark.stop()

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

数据下载地址

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浪尖聊大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用PySpark迁移学习
在本文中,将演示计算机视觉问题,它结合了两种最先进的技术:深度学习和Apache Spark。将利用深度学习管道的强大功能来 解决多类图像分类问题。
代码医生工作室
2019/07/26
1.9K0
使用PySpark迁移学习
Spark 2.3.0 如何处理图片以及存在的一些问题
因为需要在MLSQL里开发一个图片处理模块(以及配套数据源),使用上大概是这样子的:
用户2936994
2018/08/27
1.1K0
OpenCV的Mat类型以及基本函数使用
在OpenCV中IplImage是表示一个图像的结构体,也是从OpenCV1.0到目前最为重要的一个结构;在之前的图像表示用IplImage,而且之前的OpenCV是用C语言编写的,提供的接口也是C语言接口。
职场亮哥
2020/10/10
1.5K0
OpenCV 4基础篇| OpenCV图像的拆分和合并
游戏开发小Y
2024/05/24
3260
OpenCV 4基础篇| OpenCV图像的拆分和合并
自己在总结前人经验下弄的几个opencv封装函数
该文介绍了使用深度学习实现图像去噪和图像修复的方法,包括自编码器、卷积神经网络、生成对抗网络等技术,并提供了相关代码和示例。
林冠宏-指尖下的幽灵
2018/01/02
5910
Pandas数据应用:图像处理
Pandas 是一个强大的 Python 数据分析库,主要用于处理结构化数据。尽管它并不是专门为图像处理设计的,但在某些情况下,我们可以利用 Pandas 的强大功能来辅助图像处理任务。本文将由浅入深地介绍如何使用 Pandas 进行图像处理,探讨常见问题、常见报错及解决方法,并通过代码案例进行解释。
Jimaks
2025/01/10
1490
OpenCV入门教程1-常用函数
工作的原因,最近开始涉及到很多图像处理的工作,所以决定开辟一个新专栏:OpenCV入门教程系列。
皮大大
2024/06/20
4160
Python opencv图像处理基础总结(三) 图像直方图 直方图应用 直方图反向投影
图像直方图是反映一个图像像素分布的统计表,其横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。图像是由像素构成,因为反映像素分布的直方图往往可以作为图像一个很重要的特征。直方图的显示方式是左暗又亮,左边用于描述图像的暗度,右边用于描述图像的亮度。
叶庭云
2022/05/09
8640
Python opencv图像处理基础总结(三) 图像直方图 直方图应用 直方图反向投影
慕课网Spark SQL日志分析 - 5.DateFrame&Dataset
DataFrame 不是Spark Sql提出的。而是在早起的Python、R、Pandas语言中就早就有了的。
Meet相识
2018/09/12
7100
慕课网Spark SQL日志分析 - 5.DateFrame&Dataset
万字长文,值得收藏/参考的OpenCV C++基础代码
一位友好人士做的B站OpenCV4.x C++ 快速入门30讲视频课程的笔记总结!我只能点赞了!
OpenCV学堂
2021/08/06
1.1K0
一文弄明白 OpenCV Mat 中通道channels的作用
openCV 是使用 Mat 进行存储图片,记录各种像素信息。那么 Mat 中的像素是如何记录和获取的呢?
zinyan.com
2023/07/14
9320
一文弄明白 OpenCV Mat 中通道channels的作用
OpenCV-Python学习(3)—— OpenCV 图像色彩空间转换
1. 学习目标 图像色彩空间; 函数说明与解释; 学习如何将图像从一个色彩空间转换到另一个,像BGR↔灰色,BGR↔HSV等; 学习 cv.cvtColor 函数的使用。 2. 常见色彩空间 3. 常见色彩空间说明 名称 说明 HSV 对计算机友好,区分各种色彩。 RGB 设备独立。 YCrCb Y分量表示信息,CrCb可以被压缩。 RGB是计算机显示器的标准支持色彩系统。 4. 常见色彩空间取值范围 名称 范围 HSV H:0-180;SV:0-255 RGB 0-255 5. 色彩空间转换
Rattenking
2022/10/04
9260
OpenCV-Python学习(3)—— OpenCV 图像色彩空间转换
spark2 sql读取数据源编程学习样例1
问题导读 1.dataframe如何保存格式为parquet的文件? 2.在读取csv文件中,如何设置第一行为字段名? 3.dataframe保存为表如何指定buckete数目? 作为一个开发人员
用户1410343
2018/03/26
1.7K0
spark2 sql读取数据源编程学习样例1
OpenCV这么简单为啥不学——1、基础环境与imread函数
计算机视觉市场巨大而且持续增长,且这方面没有标准API,如今的计算机视觉软件大概有以下三种:
红目香薰
2023/02/10
5450
OpenCV这么简单为啥不学——1、基础环境与imread函数
OpenCV图像处理笔记(一):图片基本操作
==如果有报无法找到opencv_world343.dll的Error,请把C:\opencv\build\x64\vc14\bin下的opencv_world343.dll文件复制到C:\Windows 目录下即可==
MiChong
2020/09/24
1.5K0
OpenCV图像处理笔记(一):图片基本操作
计算机视觉101:使用Python处理彩色图像
每个计算机视觉项目(无论是猫/狗分类器还是为旧图像/电影添加颜色)都涉及处理图像。最后,模型只能与基础数据一样好- 垃圾回收。这就是为什么在这篇文章中,着重于解释在Python中使用彩色图像的基本知识,它们的表示方式以及如何将图像从一种颜色表示转换为另一种颜色表示。
代码医生工作室
2020/03/27
2.2K0
Spark Structured Streaming 使用总结
在大数据时代中我们迫切需要实时应用解决源源不断涌入的数据,然而建立这么一个应用需要解决多个问题:
大鹅
2020/10/29
9.2K0
使用Numpy和Opencv完成图像的基本数据分析
对于深度学习而言,很多任务都是与数字图形处理打交道。这类任务的数据集一般是由很多张图像构成,有时候,当原始图像不能直接送入模型中时,需要对其进行一定的预处理操作,这时候就不得不向大家介绍一个十分有用的软件包OpenCV,用它处理图像起来非常方便,OpenCV是一个基于BSD许可发行的跨平台计算机视觉库,它轻量且高效,是由一系列C函数和少量C++类构成,支持Python、MATLAB等语言接口,内部包含了很多图像处理的相关算法。下面将向大家介绍如何使用NumPy和OpenCV对数字图像进行简单的处理方法:
用户3578099
2019/08/15
1.7K0
使用Numpy和Opencv完成图像的基本数据分析
【OpenCV】Chapter1.图像的基本操作
扩展使用: 可以通过cv2.namedWindow和cv2.resizeWindow来指定窗口显示尺寸。
zstar
2022/09/21
1.1K0
OpenCV分通道显示图片,灰度,融合,直方图,彩色直方图
 代码有参考跟整合:没有一一列出出处 // split_rgb.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <vector> #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <cv.h> #include
流川疯
2019/01/18
1.1K0
推荐阅读
相关推荐
使用PySpark迁移学习
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档