pyspark的rdd类的纯python模拟版本

dummyrdd的Python项目详细描述


dummyrdd

[![覆盖状态](https://coveralls.io/repos/github/wdm0006/DummyRDD/badge.svg?branch=master)](https://coveralls.io/github/wdm0006/DummyRDD?分支=主) [![生成状态](https://travis-ci.org/wdm0006/DummyRDD.svg?branch=master)](https://travis-ci.org/wdm0006/DummyRDD

贡献者

概述

一个测试类可以像rdd一样行走,像rdd一样说话,但只是一个列表。

包含3个主要类:

  • SparkConf
  • SparkContext
  • RDD

所有这些都实现了与真正的spark方法完全相同的API,但是使用一个简单的 python列表作为实际的数据存储。许多函数,如Hadoop API、分区、complex 操作和其他东西没有实现。实现的功能和 他们的警告

注意,目前这是实验性的,以后可能对测试或开发有用,但是 使用这种方法开发出来的软件应该经常在真正的Spark上进行检查,以确保在那里工作。因为 这些代码实际上都不是在这个环境中分发的,有些东西的行为会有所不同

这个库可以作为真正的spark上下文的替换,而不会出错 但实际上可能什么也不做(例如,在不相关的配置选项的情况下)。

目前没有对dataframe api的支持,也没有对任何东西的大多数特性的支持。 仍在进行中。

示例

一个简单的例子:

from dummy_spark import SparkContext, SparkConf

sconf = SparkConf() sc = SparkContext(master=’‘, conf=sconf) rdd = sc.parallelize([1, 2, 3, 4, 5])

print(rdd.count()) print(rdd.map(lambda x: x**2).collect())

产量:

5 [1, 4, 9, 16, 25]

实现的方法

sparkconf

sparkconf已经实现了所有的功能,但实际上什么都没有设置。没有真正的配置设置 虚拟版本,因此对象只包含配置参数的字典因此,实现的功能是:

  • __init__()
  • contains()
  • get()
  • getAll()
  • set()
  • setAll()
  • setAppName()
  • setExecutorEnv()
  • setIfMissing()
  • setMaster()
  • setSparkHome()
  • toDebugString()

SparkContext

实现的功能有:

  • __init__()
  • __enter__()
  • __exit__()
  • defaultMinPartitions()
  • defaultParallelism()
  • emptyRDD()
  • parallelize()
  • NewAPIHadoopRDD() (only for elasticsearch via elasticsearch-py)
  • range()
  • startTime()
  • stop()
  • textFile() (including from s3 via tinys3)
  • version()

RDD

实现的功能有:

  • __init__()
  • __add__()
  • __repr__()
  • cache()
  • cartesian()
  • checkpoint()
  • cogroup()
  • collect()
  • context()
  • count()
  • countApprox()
  • countApproxDistinct()
  • distinct()
  • filter()
  • first()
  • flatMap()
  • flatMapValues()
  • foreach()
  • foreachPartition()
  • getNumPartitions()
  • glom()
  • groupBy()
  • groupByKey()
  • id()
  • intersection()
  • isEmpty()
  • lookup()
  • map()
  • mapPartitions()
  • mapValues()
  • max()
  • mean()
  • meanApprox()
  • min()
  • name()
  • persist()
  • reduceByKey()
  • repartitionAndSortWithinPartitions()
  • sample()
  • setName()
  • sortBy()
  • sortByKey()
  • sum()
  • take()
  • takeSample()
  • toLocalIterator()
  • union()
  • zip()
  • zipWithIndex()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过解决错误“活动无法转换为片段”将片段传递给类构造函数?   Java中清理Code39条码数据的regex帮助   将java转换为C++   java无法在Android Studio中生成签名的apk,出现错误   从数学方程出发   MySQL和Java内存问题   如何强制Java抛出算术异常?   java为什么JDBC将零端口视为空(默认)端口?   java如何在没有“changelog主题”的情况下加入KStream和KTable   排序我尝试合并两个排序的数组,但得到的是java。lang.ArrayIndexOutofBounds异常:5无法找出原因   如何在java中求大长度矩阵的逆?   基于maven构建的java生成类路径字符串   java每20个字符分割一个字符串,然后将每个部分打印到控制台   将字符串数字字转换为字符串数字:Java   在特定区域使用混合类型的java填充字节数组   尽管java类在开关块中实例化,但它只能调用接口方法