【问题标题】: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


【解决方案1】:

您是否尝试过文档中的示例。

Spark Cassandra Connector Python Documentation

 spark.read\
    .format("org.apache.spark.sql.cassandra")\
    .options(table="kv", keyspace="test")\
    .load().show()

【讨论】:

    【解决方案2】:

    我只会给我的“空头”2 美分。官方文档非常适合您入门。您可能想指定为什么这不起作用,即您是否内存不足(也许您只需要增加“驱动程序”内存)或者是否存在某些特定错误导致您的示例无法工作。如果你提供那个例子也很好。

    以下是我的一些意见/经验。通常,并非总是如此,但大多数时候您在分区中有多个列。您不必总是将所有数据加载到表中,并且或多或少可以将处理(大部分时间)保持在单个分区中。由于数据是在一个分区内排序的,这通常会很快。并且没有出现任何重大问题。

    如果您不希望 casssandra fetch 中的整个商店触发循环来进行处理,那么您确实有很多解决方案。基本上那将是quora材料。以下是一些比较常见的:

    1. 立即在您的应用程序中进行处理 - 可能需要某种实例间通信框架,例如更好的 akka 集群的 hazelcast,这确实是一个广泛的话题
    2. spark 流式传输 - 只需立即在微批处理中进行处理并刷新结果以读取到某个持久层 - 可能是 cassandra
    3. apache flink - 使用适当的流式解决方案并定期将进程状态刷新到即 cassandra
    4. 以应有的读取方式将数据存储到 cassandra - 这种方法是最值得推荐的(只是根据您提供的信息很难说)
    5. 这个列表可以继续下去...... cassandra 中的用户定义函数,如果您的任务更简单,可以聚合函数。

    您最好提供一些有关您的用例的详细信息。我在这里所说的或多或少是相当笼统和模糊的,但是再把这一切都放在评论中是没有意义的。

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      • 2019-05-13
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多