跳转到主要内容

未提供项目描述

项目描述

congruity

GitHub Actions Build PyPI Downloads

在许多方面,从使用具有全部功能和灵活性的经典Spark应用程序迁移到仅使用Spark Connect兼容的DataFrame API可能会具有挑战性。

该库的目标是提供一个兼容层,使其更容易采用Spark Connect。该库设计简单,只需将其导入到您的应用程序中,然后对现有的API进行monkey-patch以提供遗留功能。

非目标

该库并非长期解决方案。目标是提供一个随着时间而变得过时的兼容层。此外,我们并不旨在提供所有方法和功能的兼容性,而只是选择子集。最后,我们也不旨在达到使用某些原生RDD API时的相同性能。

用法

Spark JVM & Spark Connect兼容性库。

pip install spark-congruity
import congruity

示例

以下是在Spark JVM上运行的代码

from pyspark.sql import SparkSession

spark = SparkSession.builder.remote("sc://localhost").getOrCreate()
data = [("Java", "20000"), ("Python", "100000"), ("Scala", "3000")]
spark.sparkContext.parallelize(data).toDF()

此代码与Spark Connect不兼容。congruity库在底层重新排列代码,因此旧语法可以在Spark Connect集群上运行

import congruity  # noqa: F401
from pyspark.sql import SparkSession

spark = SparkSession.builder.remote("sc://localhost").getOrCreate()
data = [("Java", "20000"), ("Python", "100000"), ("Scala", "3000")]
spark.sparkContext.parallelize(data).toDF()

贡献

我们非常欢迎对这个项目的贡献。最简单的方法是选择以下RDD或SparkContext方法之一并实现兼容层。一旦完成,请提交一个pull request,我们将进行审查。

支持什么?

RDD

RDD API 注释
aggregate :white_check_mark
aggregateByKey :x
barrier :x
cache :x
cartesian :x
checkpoint :x
cleanShuffleDependencies :x
coalesce :x
co分组 :x
收集 :white_check_mark
收集为Map :x
按作业组收集 :x
combineByKey :x
计数 :white_check_mark
近似计数 :x
按键计数 :x
按值计数 :x
去重 :x
过滤 :white_check_mark
第一个 :white_check_mark
平坦映射 :x
折叠 :white_check_mark 第一版
foreach :x
foreachPartition :x
全外连接 :x
获取检查点文件 :x
获取分区数 :x
获取资源配置 :x
获取存储级别 :x
glom :white_check_mark
分组 :white_check_mark
按键分组 :white_check_mark
与分组 :x
直方图 :white_check_mark
id :x
交集 :x
是否已检查点 :x
是否为空 :x
是否本地检查点 :x
连接 :x
按键 :white_check_mark
:white_check_mark
左外连接 :x
本地检查点 :x
查找 :x
映射 :white_check_mark
映射分区 :white_check_mark 第一版,基于mapInArrow。
按索引映射分区 :x
按分割映射分区 :x
映射值 :white_check_mark
最大值 :white_check_mark
平均值 :white_check_mark
近似平均值 :x
最小值 :white_check_mark
名称 :x
分区 :x
持久化 :x
管道 :x
随机分割 :x
减少 :white_check_mark
减少键 :x
重新分区 :x
重新分区并按分区排序 :x
右外连接 :x
采样 :x
按键采样 :x
样本标准差 :white_check_mark
样本方差 :white_check_mark
保存为Hadoop数据集 :x
保存为Hadoop文件 :x
保存为新的API Hadoop数据集 :x
保存为新的API Hadoop文件 :x
保存为pickle文件 :x
保存为文本文件 :x
设置名称 :x
排序 :x
按键排序 :x
统计 :white_check_mark
标准差 :white_check_mark
减去 :x
减少键 :x
求和 :white_check_mark 第一版。
近似求和 :x
取出 :white_check_mark 排序可能不会像RDD那样保证。
取出排序 :x
取出样本 :x
toDF :white_check_mark
toDebugString :x
toLocalIterator :x
top :x
树聚合 :x
树减少 :x
union :x
取消持久化 :x
:white_check_mark
方差 :white_check_mark
withResources :x
zip :x
zipWithIndex :x
zipWithUniqueId :x

SparkContext

RDD API 注释
并行化 :white_check_mark 尚不支持numSlices。

限制

  • 错误处理和检查目前相当有限。我们尝试模拟现有行为,但并非总是可能,因为这些不变性并未编码在Python中,而是在Scala中的某个地方。
  • numSlices - 目前我们不模拟此行为。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

spark_congruity-0.0.1rc5.tar.gz (15.6 kB 查看散列)

上传时间

构建分布

spark_congruity-0.0.1rc5-py3-none-any.whl (19.5 kB 查看散列)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面