PySpark 的助手和语法糖。
项目描述
PySpark 的助手和语法糖。有几个功能可以让您的生活更轻松:
在您的代码中定义 spark 包、外部 jars、UDF 和 spark 选项;
用于 Cassandra、Elastic、MySQL、Kafka 的简化读写器 api;
Spark 应用程序的测试框架。
更多细节可以在官方文档中找到。
安装
Sparkly 本身很容易安装:
pip install sparkly
棘手的部分是pyspark。PyPI 上没有官方发行版。作为一种解决方法,我们可以建议:
使用环境变量PYTHONPATH指向您的 Spark 安装,例如:
export PYTHONPATH="/usr/local/spark/python/lib/pyspark.zip:/usr/local/spark/python/lib/py4j-0.10.4-src.zip"
将我们的setup.py文件用于pyspark。只需将其添加到您的 requirements.txt:
-e git+https://github.com/Tubular/spark@branch-2.1.0#egg=pyspark&subdirectory=python
在 Tubular 中,我们将pyspark发布到我们的内部 PyPi 存储库。
入门
这是一个小代码片段,展示了如何轻松读取 Cassandra 表并将其内容写入 ElasticSearch 索引:
from sparkly import SparklySession
class MySession(SparklySession):
packages = [
'datastax:spark-cassandra-connector:2.0.0-M2-s_2.11',
'org.elasticsearch:elasticsearch-spark-20_2.11:6.5.4',
]
if __name__ == '__main__':
spark = MySession()
df = spark.read_ext.cassandra('localhost', 'my_keyspace', 'my_table')
df.write_ext.elastic('localhost', 'my_index', 'my_type')
有关详细信息,请参阅在线文档。
测试
要运行测试,您必须在系统上安装docker和 docker-compose。如果您在 MacOS 上工作,我们强烈建议您使用 docker-machine。安装上述工具后,您只需运行:
make test
支持的 Spark 版本
目前我们支持:
闪闪发光 >= 2.7 | 火花 2.4.x |
闪闪发光的 2.x | Spark 2.0.x 和 Spark 2.1.x 和 Spark 2.2.x |
闪闪发光的 1.x | 火花 1.6.x |