pyspark的rdd类的纯python模拟版本

dummy_spark的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试图将对象的ArrayList读写到二进制文件中,但最终在输出中得到空值   java与安卓 studio未找到jvm,已设置java_主页   带有相应响应的web服务Java日志请求   java试图从LAN网络上的不同pc机获取db备份时会生成空sql文件   在Java中跟踪ListNode的头部   java有没有找到匹配谓词的第一个元素的方法?   java如何设置在eclipse中运行应用程序时打开的默认网页   java OWLAPI 5.1.6 SWRL规则生成和RDFXMLDocumentFormat:合并规则   java如何重命名安卓 studio软件包   java双向SSL身份验证意外消息   java泛型类,其arraylist包含泛型类本身的引用   java注释默认值为“null”   java BigDecimal乘法返回0?   OneToMany注释列表中的java副本