Open vikramsinghchandel opened 7 years ago
Import the Filter class
from pydruid.utils.filters import Filter
filter_unit_obj = Filter(dimension='unit', value='000721')
val > 0, these kind work can be handled by make use of javascript functionality
filter_val_obj = Filter(
type= 'javascript',
dimension= 'val',
function= "function(x){ return x > 0}"
)
Now join them like which can be substitue to the query.groupby function.
query_filter_obj = Filter(
type= 'and',
fields= [ filter_unit_obj, filter_val_obj]
)
Hope they can add this into filter documentation. Really helpful
How can i apply multiple filters to a group by query following does not work filters = (pydruid.utils.filters.Dimension("unit")=='000721') & (pydruid.utils.filters.Dimension("val") > 0) query1 = query.groupby( datasource=dataSource, granularity='minute',
intervals='2016-08-01/p12w',
Gives following error Traceback (most recent call last): File "Test_Query_2Filters.py", line 41, in
context={"timeout": 600000}#,
File "/usr/local/lib/python2.7/dist-packages/pydruid/client.py", line 191, in groupby
query = self.query_builder.groupby(kwargs)
File "/usr/local/lib/python2.7/dist-packages/pydruid/query.py", line 316, in groupby
return self.build_query(query_type, args)
File "/usr/local/lib/python2.7/dist-packages/pydruid/query.py", line 250, in build_query
query_dict[key] = Filter.build_filter(val)
File "/usr/local/lib/python2.7/dist-packages/pydruid/utils/filters.py", line 90, in build_filter
filter['fields'] = [Filter.build_filter(f) for f in filter['fields']]
File "/usr/local/lib/python2.7/dist-packages/pydruid/utils/filters.py", line 87, in build_filter
filter = filter_obj.filter['filter']
AttributeError: 'bool' object has no attribute 'filter'