2017-04-09 54 views
3

我有大量的数据存储在cassandra中,我想通过python使用spark来处理它。 我只是想知道如何通过python来连接spark和cassandra。 我见过使用sc.cassandraTable的人,但它不工作,并从卡桑德拉一次提取所有数据,然后喂火花没有任何意义。 有什么建议吗?Spark和Cassandra通过Python

+0

什么不是读取所有的数据?你有什么? –

回答

0

我只是给我的 “短” 2美分。官方文档对你来说是完全正确的。你可能想指定为什么这不起作用,即你是否内存不足(也许你只需要增加“驱动程序”内存),或者是有一些导致你的示例不起作用的特定错误。如果你提供这个例子,它也会很好。

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

如果你不想让casssandra的整个商店取得激发周期来做你的处理,你真的有很多的解决方案。基本上这将是quora材料。下面是一些比较常见的一种:

  1. 不要在您的应用程序处理的时候了 - 可能需要某种类似的甚至更好的阿卡群集本hazelcast间实例通信框架确实是一件很广泛的主题
  2. 火花流 - 只要做你的处理在微配料和冲洗结果马上阅读一些持久层 - 可能是卡桑德拉
  3. 阿帕奇弗林克 - 使用正确的流媒体解决方案,并定期刷新状态的过程中来,即卡桑德拉
  4. 将数据存储到cassandra它应该被读取的方式 - 这种方法是大多数建议(只是很难说与您提供的信息)
  5. 该列表可以继续下去...用户定义的函数在卡桑德拉,聚合函数,如果你的任务是简单的。

提供一些关于您的用例的详细信息也可能是一个好主意。或多或少,我在这里说的是相当笼统和模糊的,但是再次将这一切置于评论中是没有意义的。