如何进入我的程序(运行火花流式传输作业)每个rdd作业所需的时间。 例如
mFirebaseAdapter = new FirebaseRecyclerAdapter<Message, MessageViewHolder>(
Message.class,
R.layout.item_message,
MessageViewHolder.class,
mFirebaseDatabaseReference.child(MESSAGES_CHILD)) {
@Override
protected void populateViewHolder(final MessageViewHolder viewHolder, Message friendlyMessage, int position) {
viewHolder.messageTextView.setText(friendlyMessage.getText());
viewHolder.messengerTextView.setText(friendlyMessage.getName());
if (friendlyMessage.getPhotoUrl() == null) {
viewHolder.messengerImageView.setImageDrawable(ContextCompat.getDrawable(MessageActivity.this,
R.drawable.profilepic_placeholder));
} else {
Glide.with(MessageActivity.this)
.load(friendlyMessage.getPhotoUrl())
.into(viewHolder.messengerImageView);
}
}
};
在上面的代码中,每个微补丁rdd都会运行作业以进行映射并保存到操作。
我想获得每个流媒体工作的时间。我可以在端口4040 UI中看到这个工作,但是想要获得spark代码本身。
如果我的问题不明确,请原谅。
答案 0 :(得分:0)
您可以在spark应用中使用StreamingListener。此接口提供了一个onBatchComplete方法,可以为您提供批处理作业所需的总时间。
context.addStreamingListener(new StatusListenerImpl());
StatusListenerImpl是您必须使用StreamingListener实现的实现类。 在监听器中还有更多其他方法,您也应该探索它们。