В Zeppelin абзац jdb c может быть параметризован для запроса в соответствии с вводом из формы выбора (раскрывающийся список), например,
%jdbc
SELECT *
FROM db.table
WHERE colA='${Value=0,0(a)|1(b)|2(c)}'
LIMIT 1
создает поле вывода с раскрывающимся меню Значение (инициализируется как " a "соответствует значению 0 и имеет опции" a "," b "," c "). Запрос выполняется всякий раз, когда выбирается новое значение. В этом случае возвращается одна строка table
, для которой colA
имеет значение, соответствующее Value.
Если пользователь выбирает «c» из формы, запрос возвращает строку, где colA=2
. См .: Zeppelin Dynami c Forms
В абзаце python мы могли бы аналогичным образом создать a, используя контекст zeppelin объект z. Просто
%python
value_list = [(0,'a'),(1,'b'),(2,'c')]
value_default = value_list[0]
z.select('Value',value_list,value_default)
Кроме того, контексты zeppelin могут совместно использовать переменные. В приведенном выше примере python я мог бы добавить строку z.put('valueDefault',value_default)
и использовать ее, например, в scala (val valueDefault = z.get('valueDefault')
) или в абзаце jdb c, я могу ссылаться на valueDefault как, ${valueDefault}
, например
%jdbc
SELECT *
FROM db.table
WHERE colA='${valueDefault}'
LIMIT 1
возвращает одну строку table
с colA=0
.
Мой вопрос: как я могу (i) использовать --- эквивалент --- a z.select внутри Dynami c спецификация списка
%jdbc
SELECT *
FROM db.table
WHERE colA='${Value=0,z.select(<variable_containing_list of tuples>)}'
LIMIT 1
желаемый результат: форма Dynami c (значение по умолчанию 0, список опций из переменной)
OR (ii ) определить и повторно использовать список динамических c, охватывающий всю записную книжку?