Как применить фильтр даты и времени к bigtable с помощью Python API - PullRequest
0 голосов
/ 08 декабря 2018

Я попробовал приведенный ниже код, чтобы отфильтровать записи между двумя датами в двух сценариях, но он не работает для диапазона ниже.

DurationFrom = "2018-01-9"
DurationTo = "2018-01-10 "

и работает как ожидалось для

DurationFrom =" 2018-01-01 "
DurationTo =" 2018-01-03 "

>>> DurationFrom ="2018-01-9"                                                                                                                                                                                                                 
>>> DurationTo = "2018-01-10"                                                                                                                                                                                                              
>>> visit_dt_filter = ValueRangeFilter(start_value = DurationFrom, end_value = DurationTo)
>>> col1_filter = ColumnQualifierRegexFilter(b'visit_dt')
>>> chain1 = RowFilterChain(filters=[col1_filter, visit_dt_filter])
>>> partial_rows = table.read_rows(filter_=chain1)
>>> count = 0
>>> for row in partial_rows:
...     count += 1

код заканчивается ошибкой:

"Ошибка в фильтре цепочки строк # 1: Ошибка в поле 'value_range_filter': start_value должно быть меньше, чем end_value"

Я подозреваю, чтоСравнение на основе ASCII, следовательно, не удается.

В таких случаях, как использовать ValueRangefilter?Есть еще один фильтр ValueRegexFilter: полезно ли фильтровать значения даты и как он работает?

1 Ответ

0 голосов
/ 09 декабря 2018

Это проблема:

DurationFrom = "2018-01-9"
DurationTo = "2018-01-10"

Требуетсяbe

DurationFrom = "2018-01-09"
DurationTo = "2018-01-10"

'9'> '1'

...