Hi Guys,
I have a Dashboard where I stream my data from a ColumnDataSource object.
I created a DataTable for seeing the raw data coming in, however the DataTable creates a new ‘index’ Column which I cannot stream to.
source = ColumnDataSource(data={‘cid’: ,
‘ip_dst’: ,
‘ip_src’: ,
‘sid’: ,
‘sig_class_name’: ,
‘sig_gid’: ,
‘sig_id’: ,
‘sig_name’: ,
‘sig_priority’: ,
‘sig_rev’: ,
‘sig_sid’: ,
‘signature’: ,
‘tcp_dport’: ,
‘tcp_sport’: ,
‘timestamp’: })
datatable = DataTable(source=source, fit_columns=True, width=1000, height=400, columns=[TableColumn(field=‘cid’, title=‘cid’),
TableColumn(field=‘ip_dst’, title=‘ip_dst’),
TableColumn(field=‘ip_src’, title=‘ip_src’),
TableColumn(field=‘sid’, title=‘sid’),
TableColumn(field=‘sig_class_name’, title=‘class_name’),
TableColumn(field=‘sig_gid’, title=‘sig_gid’),
TableColumn(field=‘sig_id’, title=‘sig_id’),
TableColumn(field=‘sig_name’, title=‘sig_name’),
TableColumn(field=‘sig_priority’, title=‘priority’),
TableColumn(field=‘sig_rev’, title=‘sig_rev’),
TableColumn(field=‘sig_sid’, title=‘sig_sid’),
TableColumn(field=‘signature’, title=‘sig_num’),
TableColumn(field=‘tcp_dport’, title=‘dport’),
TableColumn(field=‘tcp_sport’, title=‘sport’),
TableColumn(field=‘timestamp’, title=‘timestamp’)])
def update():
df = pd.read_sql_query('SELECT * FROM event LEFT JOIN signature ON event.signature=signature.sig_id ’
‘LEFT JOIN sig_class ON signature.sig_class_id=sig_class.sig_class_id;’,
engine).drop(‘sig_class_id’, axis=1)
df2 = pd.read_sql_query(‘SELECT ip_src,ip_dst FROM iphdr;’, engine)
df3 = pd.read_sql_query(‘SELECT tcp_sport, tcp_dport FROM tcphdr;’, engine)
df4 = pd.concat([df, df2, df3], axis=1, verify_integrity=True).to_dict(orient=‘list’)
source.stream(df4, 300)
``
Im unsure of where the ‘index’ column that the DataTable contains comes from.
As I do not have a columndatasource stream that contains an ‘index’ column, the application breaks with 'ValueError(‘Must stream updates to all existing columns (missing: index)’
bokeh version = 0.12.4
pandas version = 0.19.2
Cheers,
Sean Cruikshank