如何在 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