2017-05-09 33 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对象的过程太慢了。我仍在努力。