gpt4 book ai didi

apache-zeppelin - 在 Zeppelin jdbc 解释器中使用日期选择器

转载 作者:行者123 更新时间:2023-12-04 07:07:26 29 4
gpt4 key购买 nike

我的 Zeppelin 笔记本中有一组图表,它们使用 jdbc interperter 从数据库中获取一段时间的数据。我想做的是能够选择一个适用于所有图表的时期。

我可以看到可以使用 Dynamic Form 创建一个输入字段甚至带有 Angular 的日期选择器(这会更好)。是否有可能以某种方式在 jdbc interperter 中使用选定的时间段?

Apply Zeppelin Dynamic Forms 中给出的示例中我可以在一张图表中看到如何做到这一点,但这不是我想要的:能够定义一个会影响所有图表的字段。

最佳答案

我的解决方案(带有角度解释器):

第一个参数(依赖项):

%angular
<script type="text/javascript" src="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.css" />

第二个参数 (daterangepicker) - 更改参数 ID :
%angular
<span>Date range picker:</span>
<div id="reportrange" style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc; width:250px;">
<i class="glyphicon glyphicon-calendar fa fa-calendar"></i>&nbsp;
<span></span> <b class="caret"></b>
</div>
<p>
<p>
<input id="start" ng-model="start" style="visibility: hidden;"></input>
<input id="end" ng-model="end" style="visibility: hidden;"></input>
<button type="submit" class="btn btn-primary pull-right" ng-click="z.angularBind('start',start,'fixme to param ID');z.angularBind('end',end,'fixme to param ID');"> Apply</button>
<script type="text/javascript">
$(function() {
var start = moment().subtract(29, 'days');
var end = moment();
function cb(start, end) {
$('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
$('#start').val(start.toISOString());
$('#start').trigger('input'); // Use for Chrome/Firefox/Edge
$('#start').trigger('change'); // Use for Chrome/Firefox/Edge + IE11
$('#end').val(end.toISOString());
$('#end').trigger('input'); // Use for Chrome/Firefox/Edge
$('#end').trigger('change'); // Use for Chrome/Firefox/Edge + IE11
}

$('#reportrange').daterangepicker({
startDate: start,
endDate: end,
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
}
}, cb);

cb(start, end);
});
</script>

第三个参数:
%jdbc
SELECT *
FROM TABLE
WHERE DATE >= TO_TIMESTAMP('${start}') AND DATE <= TO_TIMESTAMP('${end}')

关于apache-zeppelin - 在 Zeppelin jdbc 解释器中使用日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42069474/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com