2017-05-09 103 views
-1

我想使用的BerkeleyDB與Hadoop和星火有任何指導/提供給多個節點的集羣上運行Berkeley DB的教程(我有8個節點集羣)使用的BerkeleyDB與Hadoop和星火

  1. 是它使用Berkeley存儲BigData進行分析的正確選擇?因爲我想樹像結構化數據庫
  2. 有沒有更好的選擇?

回答

0

我自己找到答案。 當我們連接時使用的Berkeley DB

fileName = '/your/berkeley/file/path' 
berkleyObject = bsddb3.btopen(fileName) 

它基本上使我們的字典遍歷使用大熊貓

df = pandas.DataFrame(berkleyObject.items(),columns=['Key','value']) 

,然後我們可以加載這些數據包含,使我們可以創建數據幀完整的數據幀到Spark的SqlContext

sparkDF = sparkSql.createDataFrame(df) 

我還沒有試過創建數據幀直接從伯克利bsddb3對象年,但我相信它會工作太

sparkSql.createDataFrame(berkleyObject.items()) 

火花的數據幀分佈像RDD所以我們做出將利用火花的分佈式處理的SQL查詢,即它將運行查詢平行的所有附屬/工人節點。

sparkDF.registerTempTable("Data") 
result = sparkSql.sql("SELECT * FROM Data WHERE Key == 'xxxx' ") 

只有catch是把Dictionary對象轉換成DataFrame對象的過程太慢了。我仍在努力。