error ... ImportError: No module named cassandra.cluster

11,079

Install cassandra driver:

pip install cassandra-driver
Share:
11,079
max scalf
Author by

max scalf

Updated on June 04, 2022

Comments

  • max scalf
    max scalf almost 2 years

    I am trying to follow the below video about write-paths and when i use the sample student-files that are provided i get below error....i am really new to cassandra and trying to figure out why the excerise file not work....i have provided the error that i get(ImportError: No module named cassandra.cluster) and also the .sh and .py file...any help is appriciated...

    https://academy.datastax.com/courses/understanding-cassandra-write-path/understanding-data-files

        cass@cass:~/student-files/write-path/exercise-1$ ccm list
     *demo_1node
    cass@cass:~/student-files/write-path/exercise-1$
    cass@cass:~/student-files/write-path/exercise-1$ ccm status
    Cluster: 'demo_1node'
    ---------------------
    node1: UP
    cass@cass:~/student-files/write-path/exercise-1$
    cass@cass:~/student-files/write-path/exercise-1$ ./write_data.sh 300000
    Traceback (most recent call last):
      File "./write_data.py", line 5, in <module>
        from cassandra.cluster import Cluster
    ImportError: No module named cassandra.cluster
    cass@cass:~/student-files/write-path/exercise-1$
    
    cass@cass:~/student-files/write-path/exercise-1$ cat write_data.sh
    #!/bin/bash
    
    if [ $# -ne 1 ]; then
      echo "Usage: write_data.sh <number of keys>"
      exit 0
    fi
    
    if [ `ccm status | grep "node1: UP" | wc -l` -ne 1 ]; then
      echo "Cassandra cluster not up"
      exit 0
    fi
    
    ./write_data.py $1
    cass@cass:~/student-files/write-path/exercise-1$
    cass@cass:~/student-files/write-path/exercise-1$ cat write_data.py
    #!/usr/bin/python
    
    # This Python script will insert a number of keys into
    # musicdb.user
    from cassandra.cluster import Cluster
    from random import randint
    from sets import Set
    from uuid import uuid4
    import os,sys,time,binascii
    
    if len(sys.argv) < 2:
        print "Usage: python.py <number of keys>"
        sys.exit()
    
    cluster = Cluster(['127.0.0.1'])
    session = cluster.connect()
    
    insert_row_prepare = session.prepare("INSERT INTO musicdb.user (id,preferences) VALUES(?,?)")
    
    quarter=int(int(sys.argv[1])/4)
    half=int(int(sys.argv[1])/2)
    three_quarter=int(int(sys.argv[1])/4)+int(int(sys.argv[1])/2)
    
    for x in range(0,int(sys.argv[1])):
      id = uuid4()
      set = Set([binascii.b2a_hex(os.urandom(100)),binascii.b2a_hex(os.urandom(100)),binascii.b2a_hex(os.urandom(100)),
                 binascii.b2a_hex(os.urandom(100)),binascii.b2a_hex(os.urandom(100)),binascii.b2a_hex(os.urandom(100)),
                 binascii.b2a_hex(os.urandom(100)),binascii.b2a_hex(os.urandom(100)),binascii.b2a_hex(os.urandom(100)),
                 binascii.b2a_hex(os.urandom(100)),binascii.b2a_hex(os.urandom(100)),binascii.b2a_hex(os.urandom(100))])
      insert_row_bind = insert_row_prepare.bind([id,set])
      session.execute(insert_row_bind)
    
      if (x+1) == int(sys.argv[1]):
        print "100% completed - " + str(x+1) + " rows inserted."
      elif (x+1) == quarter:
        print "25% completed - " + str(x+1) + " rows inserted."
      elif (x+1) == half:
        print "50% completed - " + str(x+1) + " rows inserted."
      elif (x+1) == three_quarter:
        print "75% completed - " + str(x+1) + " rows inserted."
    
    time.sleep(1)
    cluster.shutdown()
    cass@cass:~/student-files/write-path/exercise-1$