2017-04-09 57 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. 該列表可以繼續下去...用戶定義的函數在卡桑德拉,聚合函數,如果你的任務是簡單的。

提供一些關於您的用例的詳細信息也可能是一個好主意。或多或少,我在這裏說的是相當籠統和模糊的,但是再次將這一切置於評論中是沒有意義的。