如何在 pyspark 中嵌入 angular javascript 文本框值
How to get embedded angular javascript textbox value in pyspark
我在 zeppelin %pyspark
解释器中有日期范围选择器,如下所示:
print("""%angular
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />
<input type="text" name="datetimes" />
<script>
$(function() {
$('input[name="datetimes"]').daterangepicker({
timePicker: true,
startDate: moment().startOf('hour'),
endDate: moment().startOf('hour').add(32, 'hour'),
locale: {
format: 'M/DD hh:mm A'
}
});
});
</script>
""")
我不知道如何在 %pyspark
解释器
中获取 daterangepicker
中选择的值
就像评论中已经提到的那样,它目前仅适用于 spark scala 解释器。我已经使用您的代码来获取和设置您的 daterangepicker 的值,但我不得不承认它不稳定(有时有效,有时无效)。我不确定是否需要对您的 daterangepicker 进行进一步更改以处理初始值,因为我不知道 angluar 或 zeppelin 后端 angular API 是否尚未准备好生产。也许你或其他人可以根据我的方法解决这个问题。
您必须做的一件重要事情是绑定变量并将 ng-model 属性添加到您要绑定的标签。
z.angularBind("choice", "6/04 03:00 AM - 6/23 11:00 AM")
println("""%angular
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />
<input type="text" name="datetimes" ng-model="choice"/>
<script>
$(function() {
$('input[name="datetimes"]').daterangepicker({
timePicker: true,
startDate: moment().startOf('hour'),
endDate: moment().startOf('hour').add(32, 'hour'),
locale: {
format: 'M/DD hh:mm A'
}
});
});
</script>
""")
您可以获取另一个 %spark 段落中的值:
println(z.angular("choice"))
//6/04 03:00 AM - 6/25 12:00 AM
我在 zeppelin %pyspark
解释器中有日期范围选择器,如下所示:
print("""%angular
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />
<input type="text" name="datetimes" />
<script>
$(function() {
$('input[name="datetimes"]').daterangepicker({
timePicker: true,
startDate: moment().startOf('hour'),
endDate: moment().startOf('hour').add(32, 'hour'),
locale: {
format: 'M/DD hh:mm A'
}
});
});
</script>
""")
我不知道如何在 %pyspark
解释器
daterangepicker
中选择的值
就像评论中已经提到的那样,它目前仅适用于 spark scala 解释器。我已经使用您的代码来获取和设置您的 daterangepicker 的值,但我不得不承认它不稳定(有时有效,有时无效)。我不确定是否需要对您的 daterangepicker 进行进一步更改以处理初始值,因为我不知道 angluar 或 zeppelin 后端 angular API 是否尚未准备好生产。也许你或其他人可以根据我的方法解决这个问题。
您必须做的一件重要事情是绑定变量并将 ng-model 属性添加到您要绑定的标签。
z.angularBind("choice", "6/04 03:00 AM - 6/23 11:00 AM")
println("""%angular
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />
<input type="text" name="datetimes" ng-model="choice"/>
<script>
$(function() {
$('input[name="datetimes"]').daterangepicker({
timePicker: true,
startDate: moment().startOf('hour'),
endDate: moment().startOf('hour').add(32, 'hour'),
locale: {
format: 'M/DD hh:mm A'
}
});
});
</script>
""")
您可以获取另一个 %spark 段落中的值:
println(z.angular("choice"))
//6/04 03:00 AM - 6/25 12:00 AM