""" Python by Techfossguru Copyright (C) 2017 Satish Prasad """ import logging from cassandra.cluster import Cluster, BatchStatement class PythonCassandraExample: def __init__(self): self.cluster = None self.session = None self.keyspace = None self.log = None def __del__(self): self.cluster.shutdown() def createsession(self): self.cluster = Cluster(['localhost']) self.session = self.cluster.connect(self.keyspace) def getsession(self): return self.session # How about Adding some log info to see what went wrong def setlogger(self): log = logging.getLogger() log.setLevel('INFO') handler = logging.StreamHandler() handler.setFormatter(logging.Formatter( "%(asctime)s [%(levelname)s] %(name)s: %(message)s")) log.addHandler(handler) self.log = log # Create Keyspace based on Given Name def createkeyspace(self, keyspace): """ :param keyspace: The Name of Keyspace to be created :return: """ # Before we create new lets check if exiting keyspace; we will drop # that and create new rows = self.session.execute( "SELECT keyspace_name FROM system_schema.keyspaces") if keyspace in [row[0] for row in rows]: self.log.info("dropping existing keyspace...") self.session.execute("DROP KEYSPACE " + keyspace) self.log.info("creating keyspace...") self.session.execute(""" CREATE KEYSPACE %s WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '2' } """ % keyspace) self.log.info("setting keyspace...") self.session.set_keyspace(keyspace) def create_table(self): c_sql = """ CREATE TABLE IF NOT EXISTS employee (emp_id int PRIMARY KEY, ename varchar, sal double, city varchar); """ self.session.execute(c_sql) self.log.info("Employee Table Created !!!") # lets do some batch insert if __name__ == '__main__': example1 = PythonCassandraExample() example1.createsession() example1.setlogger() example1.createkeyspace('techfossguru') example1.create_table() example1.insert_data() example1.select_data()