未提供项目描述
项目描述
congruity
在许多方面,从使用具有全部功能和灵活性的经典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://").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://").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的散列
| 算法 | 散列摘要 | |
|---|---|---|
| SHA256 | aaf06969e68c6248932e5045b79ca8b9aa185a825e89cf0a0d682527e432f381 |
|
| MD5 | 34e34975b696429c3b24d97adefd1d3b |
|
| BLAKE2b-256 | 7ebc00db37e6c25b4b9f75cb76826ef0fe4871578f448bd02f20312148e895a5 |