程序如下:

from pyspark import SparkConf, SparkContext
conf = SparkConf().setAppName("My test App")
sc = SparkContext(conf=conf) """
lines = sc.textFile("/tmp/tmp.txt")
print lines.count()
print lines.first()
""" def load_model(sc, model_filename):
rdd = sc.binaryFiles("/tmp/test.pkl")
import pickle
from io import BytesIO
data_arr = rdd.values().map(lambda p: pickle.load(BytesIO(p))).collect()
print(data_arr) load_model(sc, None)

  其中,test.pkl:

a = {'xx': 999, 'hi': 1223}

>>> f2=open("test.pkl", "wb")
>>> pk.dump(a, f)
>>> f.close()
>>> f2=open("test.pkl", "rb")
>>> pk.load(f2)
{'xx': 999, 'hi': 1223}
>>>

上传到hdfs:

dfs -put test.pkl /tmp/

然后pyspark里运行上述代码:

结果输出:

>>> load_model(sc, None)
[{'xx': 999, 'hi': 1223}]
>>> load_model(sc, None)
[{'xx': 999, 'hi': 1223}]

pyspark读取hdfs 二进制文件的更多相关文章

  1. python读取hdfs上的parquet文件方式

    在使用python做大数据和机器学习处理过程中,首先需要读取hdfs数据,对于常用格式数据一般比较容易读取,parquet略微特殊.从hdfs上使用python获取parquet格式数据的方法(当然也 ...

  2. python读取hdfs并返回dataframe教程

    不多说,直接上代码 from hdfs import Client import pandas as pd HDFSHOST = "http://xxx:50070" FILENA ...

  3. spark读取hdfs上的文件和写入数据到hdfs上面

    def main(args: Array[String]): Unit = { val conf = new SparkConf() conf.set("spark.master" ...

  4. Spark读取HDFS文件,文件格式为GB2312,转换为UTF-8

    package iie.udps.example.operator.spark; import scala.Tuple2; import org.apache.hadoop.conf.Configur ...

  5. 通过java读取HDFS的数据 (转)

    原文链接:通过java读取HDFS的数据 通过JAVA直接读取HDFS中的时候,一定会用到FSDataInputStream类,通过FSDataInputStream以流的形式从HDFS读数据代码如下 ...

  6. 读取hdfs目录,并在web页面上展示文件里的内容

    最终效果图 目录树实体类: /** * @Author: DaleyZou * @Description: hdfs 目录结构的实体类,用于展示目录树的支撑操作 * @Date: Created in ...

  7. Java API 读取HDFS的单文件

    HDFS上的单文件: -bash-3.2$ hadoop fs -ls /user/pms/ouyangyewei/data/input/combineorder/repeat_rec_categor ...

  8. java读取HDFS压缩文件乱码

    java通过调用HDFS系统的FileSystem等API 直接读取HDFS的压缩文件会产生乱码 解决方法: 1.调用解码的API,解码后通过IO流处理. public static void mai ...

  9. Spark读取HDFS文件,任务本地化(NODE_LOCAL)

    Spark也有数据本地化的概念(Data Locality),这和MapReduce的Local Task差不多,如果读取HDFS文件,Spark则会根据数据的存储位置,分配离数据存储最近的Execu ...

随机推荐

  1. dubbo问题集合

    背景:用于整理在开发过程中遇到的相关问题. Dubbo Server的时候出现“Will not attempt to authenticate using SASL (unknown error)” ...

  2. js arguments

    偶然碰见一个有意思的题 <script> var length = 10; function fn() { console.log( this.length ); // 10 } var ...

  3. Numba——python面向数组高性能计算库

    python在计算性能上相对c是比较弱鸡的,有了numpy后计算性能短板是补了一些,而Numba库又给python计算性能加了发动机(忽然想到西虹市首富王多鱼的名言:我再加200万,给冰山提提速.), ...

  4. 16 JQuery---JavaScript框架

    1.JQuery概念一个JavaScript框架.简化JS开发JQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScr ...

  5. 《TCP/IP - OSI和TCP/IP分层模型》

    一:分层模型 -  - OSI 更强调:通信协议必要的功能是什么 - TCP/IP 更强调:在计算机上实现协议应该开发哪种程序  二:为什么会产生协议标准化 (分层模型的产生)? - 由于各个厂商生产 ...

  6. spring boot 初始

    前言 与时俱进是每一个程序员都应该有的意识,当一个Java程序员在当代步遍布的时候,你就行该想到我能多学点什么.可观的是后端的框架是稳定的,它们能够维持更久的时间在应用中,而不用担心技术的更新换代.但 ...

  7. Linux08 文件系统

    对于磁盘等各类存储设备中所有的数据都以0和1的概念,但对于用户来说,0和1是没有任何意义的,这时候就需要一种类似于“翻译”的机制存在于用户和磁盘之间,Linux中采用的是文件系统+虚拟文件系统(Vir ...

  8. mysql中数据表记录的增删查改(2)

    select `数据表.字段1`, group_concat(`数据表.字段2`) from `数据表` group by `数据表.字段1` order by `数据表.字段1` desc; sel ...

  9. Django REST Framework批量更新rest_framework_extensions

    Django REST framework 是一套基于Django框架编写RESTful风格API的组件. 其中mixins配合viewsets能极其方便简化对数据的增删改查, 但本身并没有对数据的批 ...

  10. 通过names.index()方法找到第2个eva值 ,并将其改成EVA

    names= ['alex','rain','peiqi','eva','mac','jack','eva','kangkang','jain']first_index=names.index('ev ...