pyspark的helpers和syntax sugar。
sparkl的Python项目详细描述
pyspark的helpers&syntax sugar。有几个功能可以让您的生活更轻松:
- 在代码中定义spark包、外部jar、udf和spark选项;
- Cassandra、Elastic、MySQL、Kafka的简化读写器API;
- Spark应用程序的测试框架。
有关详细信息,请参见the official documentation。
安装
Sparkly本身易于安装:
pip install sparkly
棘手的部分是pyspark。没有关于 皮皮。作为解决方法,我们建议:
使用env变量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中,我们向内部pypi发布了pyspark。 储存库。
开始
下面是一个小代码片段,演示如何轻松读取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')
参见the online documentation了解 更多细节。
测试
要运行测试,必须有docker和 docker-compose安装在 系统。如果您正在使用macos,我们强烈建议您使用 docker-machine。一旦 上面提到的工具已经安装,您只需运行:
make test
支持的Spark版本
目前我们支持:
sparkly >= 2.7 | Spark 2.4.x |
sparkly 2.x | Spark 2.0.x and Spark 2.1.x and Spark 2.2.x |
sparkly 1.x | Spark 1.6.x |