• pyspark读取hdfs 二进制文件


    程序如下:

    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}]

  • 相关阅读:
    计算机通信网
    程序员面试——数学和概率
    位移枚举
    OC中的宏定义
    配置Xcode的Device Orientation、AppIcon、LaunchImage
    Xcode中的Project和Target
    NSObject
    CG
    UICollectionViewLayout
    UICollectionView
  • 原文地址:https://www.cnblogs.com/bonelee/p/11172280.html
Copyright © 2020-2023  润新知