2017-05-09 3 views
-1

Je veux utiliser BerkeleyDB avec Hadoop et Spark est là tout guide/tutoriels pour exécuter berkeley db sur le cluster de plusieurs nœuds (j'ai groupe 8 nœuds)En utilisant BerkeleyDB avec Hadoop et Spark

  1. est-il un bon choix pour utiliser Berkeley pour stocker BigData pour l'analyse? Comme je veux Arbre comme structuré DB
  2. Yat-il une meilleure option?

Répondre

0

J'ai trouvé la réponse moi-même. Lorsque nous nous connectons avec berkeley db en utilisant

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

Il nous donne essentiellement un dictionnaire à parcourir contenant des données complètes par lequel nous pouvons créer dataframe en utilisant pandas géants

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

et nous pouvons charger ces données cadre dans SqlContext de Spark

sparkDF = sparkSql.createDataFrame(df) 

Je n'ai pas essayé de créer des données directement y de berkeley objet bsddb3 mais je suis sûr que cela fonctionnera aussi

sparkSql.createDataFrame(berkleyObject.items()) 

En tant que dataframe d'étincelle est distribué comme RDD donc toutes les requêtes Sql que nous faisons utilisera le traitement distribué des étincelles à savoir Il exécuter des requêtes parallèles sur tous les esclaves/travailleur nœuds. Seul l'attraper est l'objet Dictionnaire qui convertit le processus en objet DataFrame est trop lent. Je travaille toujours dessus.