I have a cassandra table with 30 columns and a dataframe which will contain any number of columns as selected by the user, or as uploaded by user as a csv file.
for ex. my cassandra table has 30 channel names like channel_1, channel_2 .. channel_30 and few extra columns like product, region etc. and my dataframe has 5 channel names like channel_1, channel_2..channel_5 and 2 extra columns : date and model name how do i write an insert query which iterates through my dataframe columns and creates the query as follows:
data = pd.DataFrame()
...
for _, row in data.iterrows():
session.execute("""INSERT INTO cass_table (product, region , model, date, (channel names in dataframe ex.channel_1, \
channel_2, channel_3, channel_4, channel_5) \
VALUES (%s, %s, %s, %s, <no of channels: %s, %s, %s, %s, %s>)""" ,\
(product, region, row['model_name'], row['date'], <other remaining columns like row["channel_1"], row["channel_2"],\
row["channel_3"], row["channel_4"], row["channel_5"]>))
I tried this:
channel_list = ['channel_1', 'channel_2', 'channel_3', 'channel_4', 'channel_5']
session.execute("""INSERT INTO cass_table(product, region , model, date, \
""" + str(' ,'.join('channel_{}_cont'.format(i) for i,c in enumerate(channel_list, 1))) + """) ,\
VALUES (%s, %s, %s, %s"""+ str(''.join(', %s'*no_of_channels)), """)""" \
(product, region, row['model_name'], row[date_col] , ','.join(row["'"+channel_list+"'"])))
but this gives error: "str object is not callable"
How do I proceed?