【问题标题】:Spark and Cassandra through Python通过 Python 实现 Spark 和 Cassandra
【发布时间】:2017-09-04 18:07:33
【问题描述】:
我在 cassandra 中存储了大量数据,我想通过 python 使用 spark 处理它。
我只是想知道如何通过 python 互连 spark 和 cassandra。
我见过有人使用 sc.cassandraTable 但它不能工作并且一次从 cassandra 获取所有数据然后喂给 spark 没有意义。
有什么建议吗?
【问题讨论】:
标签:
python
apache-spark
cassandra
pyspark
【解决方案2】:
我只会给我的“空头”2 美分。官方文档非常适合您入门。您可能想指定为什么这不起作用,即您是否内存不足(也许您只需要增加“驱动程序”内存)或者是否存在某些特定错误导致您的示例无法工作。如果你提供那个例子也很好。
以下是我的一些意见/经验。通常,并非总是如此,但大多数时候您在分区中有多个列。您不必总是将所有数据加载到表中,并且或多或少可以将处理(大部分时间)保持在单个分区中。由于数据是在一个分区内排序的,这通常会很快。并且没有出现任何重大问题。
如果您不希望 casssandra fetch 中的整个商店触发循环来进行处理,那么您确实有很多解决方案。基本上那将是quora材料。以下是一些比较常见的:
- 立即在您的应用程序中进行处理 - 可能需要某种实例间通信框架,例如更好的 akka 集群的 hazelcast,这确实是一个广泛的话题
- spark 流式传输 - 只需立即在微批处理中进行处理并刷新结果以读取到某个持久层 - 可能是 cassandra
- apache flink - 使用适当的流式解决方案并定期将进程状态刷新到即 cassandra
- 以应有的读取方式将数据存储到 cassandra - 这种方法是最值得推荐的(只是根据您提供的信息很难说)
- 这个列表可以继续下去...... cassandra 中的用户定义函数,如果您的任务更简单,可以聚合函数。
您最好提供一些有关您的用例的详细信息。我在这里所说的或多或少是相当笼统和模糊的,但是再把这一切都放在评论中是没有意义的。