未提供项目描述
项目描述
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://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的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | aaf06969e68c6248932e5045b79ca8b9aa185a825e89cf0a0d682527e432f381 |
|
MD5 | 34e34975b696429c3b24d97adefd1d3b |
|
BLAKE2b-256 | 7ebc00db37e6c25b4b9f75cb76826ef0fe4871578f448bd02f20312148e895a5 |