2 rfyzzyq rfyzzyq 于 2016.03.05 21:48 提问

【提问】Spark使用binaryFile加载二进制文件,如何处理

在使用binaryFile加载二进制文件之后,得到的是包含[String,PortableDataStream]的pair的RDD。我继续对得到的RDD使用map,使用PortableDataStream的toArray方法得到二进制文件转换之后的Byte数组。有如下几个问题:
1,我该如何我该如何将这个Byte的数组按四个Byte合并为一个float?
2,这个portableDataStream是如何做到并行计算的?
3,生成的RDD如何保证如何存储为目标格式的HDFS文件格式,比如我要处理一张图片,调用savaAsTextFiles之后得到的是HDFS的文件格式,那么我在RDD中的数据是怎样的呢?

2个回答

rfyzzyq
rfyzzyq   2016.03.05 21:58

楼主刚开始学spark还望各位高手指教指教~~~ ^_^

wgw880516
wgw880516   2016.04.15 14:31

请问楼主问题解决了吗?我最近也在做Spark处理图像文件,使用binaryFile加载后该如何处理呢?

rfyzzyq
rfyzzyq 我后面看了下加载之后的RDD里面有什么,得到的是[String,PortableDataStream],数据在后面的那个PortableDataStream里面,我用的他的方法toArray将转换为byte处理的
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Spark读取文件
1.textFile: 其定义为:def textFile(path: String, minPartitions: Int = defaultMinPartitions): RDD[String];从HDFS,本地或者任何Hadoop支持的文件系统URI读取文件,返回String RDD。 2.wholeTextFiles: 其定义为:def wholeTextFiles(p
spark源码阅读一-spark读写文件代码分析
1.读取文件 从本地文件读取sparkcontext.textFile(“abc.txt”) 从hdfs文件读取sparkcontext.textFile("hdfs://s1:8020/user/hdfs/input”)
spark程序读写protobuf格式数据(java语言)
在spark上,用protobuf替代json格式作为数据序列化存储谷歌的protobuf一般用来将复杂数据结构序列化为二进制数组,非常适合网络传输等领域,其效率和空间占用都优于json格式。这一次,我在用spark做建模时,打算使用protobuf替换原json格式数据,以获得性能提升。在此记录下实现方式,以及如何避过我遇到的坑。我的环境是spark1.5.0 + java7 + protobuf
spark大数据入门(三)--RDD的简单解析
什么是RDD      RDD是弹性分布式数据集的简称,她具有以下的优点:第一RDD具有并行化的操作特点,通俗的说,在RDD中存在一定数量的分片,每一个分片都会对应一个task,这些Task是可以并发烦人执行。第二,RDD具有很好的容错处理,这个特性是由RDD的血统依赖产生的,RDD1---->RDD2---->RDD3,这单个RDD一次又前面的那产生,同事RDD又具有不变的性质,当RDD3发
Spark+Parquet分片规则
之前提到parquet.block.size所控制的parquet row group大小是一个需要调优的spark参数。其中重要一点,就是控制任务的并发度。 在Hadoop里,任务的并发默认是以hdfs block为单位的,而Spark里多了一种选择,即以RowGroup为基本单位。 在调用HiveContext.read.parquet(path)时,会触发ParquetRelation2对
Spark hello word(加载本地文件和加载hdfs文件)
本节内容主要完成: 使用sparkshell记载本地文件和hdfs文件 spark处理的文件可能存在于本地文件系统中,也可能存在分布式文件系统中 本地文件加载 创建一个测试文件 [root@sandbox home]# cd /home/guest/ // 在guest 目录下创建一个文件夹 [root@sandbox guest]# mkdir erhuan // 在 新建的文件夹中创建一
VS2005 未使用调试信息生成二进制文件 解决方法 办法
【转】 (笔记)VS2005 未使用调试信息生成二进制文件 解决方法 办法 中文 英文版 对应 2010年05月31日 星期一 15:42 转载自 benbendy 最终编辑 黑色_月亮         这个问题的出现,主要是创建工程的时候
spark中的SparkContext的textFile使用的小窍门
网上很多例子,包括官网的例子,都是用textFile来加载一个文件创建RDD,类似sc.textFile("hdfs://ss:8020/hdfs/input") textFile的参数是一个path,这个path可以是: 1. 一个文件路径,这时候只装载指定的文件 2. 一个目录路径,这时候只装载指定目录下面的所有文件(不包括子目录下面的文件) 3. 通过通配符的形式加载多个文件或者
未使用调试信息生成二进制文件
1   项目 -> ***属性 -> 配置属性 -> 链接器 -> 调试 -> [生成调试信息] 从: 否 -> 是(/DEBUG) 2   项目 -> ***属性 -> 配置属性 -> C/C++ -> [调试信息格式] 从: 禁用 -> 程序数据库(/Zi) 3   项目 -> ***属性 -> 配置属性 -> C/C++ -> 优化 -> [优化] 从: 最大化速度(/O2) -> 禁用
JavaSpark-数据读存-文本文件
在数据的存取中输出格式是很重要的,这利于下游处理程序 有时数据量达到本地无法存放时,就需要考虑别的存取方法 spark支持很多种输入源,因为spark是基于hadoop生态构建的,支持InputFormat和OutputFormat接口访问。而这两个接口也是map/reduce用来连接数据源的java API,同时(S3,HDFS,Cassandra,Hbase)等存储系统也支持这种接口基于原