我正在研究一些C#代码处理像移动平均线这样的问题,我经常需要使用List/IEnumerable并处理大量的连续数据.F#Seq模块具有很好的功能,窗口化,它接收序列,返回一系列连续元素的序列.
C#是否具有与LINQ开箱即用的等效功能?
我已经在Kafka流应用程序中编写了以下代码:
KGroupedStream<String, foo> groupedStream = stream.groupByKey();
groupedStream.windowedBy(
SessionWindows.with(Duration.ofSeconds(3)).grace(Duration.ofSeconds(3)))
.aggregate(() -> {...})
.suppress(Suppressed.untilWindowCloses(unbounded()))
.toStream()...
Run Code Online (Sandbox Code Playgroud)
关闭窗口后,应该(如果我正确理解的话)每个键都发出记录。不知何故,行为如下:
该流不会发出第一条记录,仅使用不同的Key才将其转发到第二条记录之后,然后仅在第三条记录之后发出第二条记录,依此类推。
我已经尝试使用“ exactly_once”使用多个StreamConfigs,并且无论是否具有缓存,这种现象仍然存在。
在此先感谢您的帮助 !
我正在写一个应用程序.它需要在旧的Android操作系统上运行才有用.我使用PreferencesActivity编写了首选项屏幕,该PreferencesActivity填充了包含PreferenceScreen的options.xml文件.它没有偏好子菜单(因此PreferenceFragment没有提供真正的好处).
在Android 2.1(2.2和2.3,尚未在ICS上测试过)中,屏幕在横向上显示如下:
但是在Jellybean上,它看起来像这样:
看起来很糟糕.我没有定义任何布局,只是标准的addPreferencesFromResource().有谁知道这可能是什么原因?还是解决方案?
我的onCreate看起来像这样:
protected void onCreate(Bundle savedInstanceState) { //
super.onCreate(savedInstanceState);
Log.i(TAG, "Options Activity Loaded.");
setTitle(getString(R.string.optionsTitle));
addPreferencesFromResource(R.xml.options);
setupListeners();
}
Run Code Online (Sandbox Code Playgroud)
其他所有内容只会生成Preference对象,并指定方法在单击时执行操作.我不想为PreferenceFragment和PreferenceActivity创建代码.我不明白,如果最大版本的市场份额没有该API,谷歌希望我们使用Fragment API,他们不会将它添加到兼容性库中.
我有以下代码段可以根据事件时间每小时聚合数据
KStream<Windowed<String>, SomeUserDefinedClass> windowedResults = inputStream
.groupByKey(Grouped.with(Serdes.String(), new SomeUserDefinedSerde<>()))
.windowedBy(TimeWindows.of(Duration.ofMinutes(60)).grace(Duration.ofMinutes(15)))
.aggregate
(
// do some aggregation
)
.suppress(Suppressed.untilTimeLimit(Duration.ofMinutes(75), Suppressed.BufferConfig.unbounded()))
.toStream();
Run Code Online (Sandbox Code Playgroud)
问题是,如果我没有收到具有相同密钥且时间戳晚于时间限制 + 宽限期的数据,我将无法关闭时间窗口并发出结果。
我想知道可以使用哪些替代方法来确保窗口关闭并在给定时间过去后发出数据(无需等待同一密钥的任何新数据)。
是否有选项/功能可以使 UntilTimeLimit 参数基于实时而不是事件时间?
注意:这个问题不是关于为什么 TimeWindow 没有关闭,而是关于在没有新数据的情况下如何关闭它
在DirectX 10应用程序中,在全屏模式和窗口模式之间切换会产生任何类型的开销,例如必须重新创建纹理和/或顶点缓冲区吗?
换句话说,我可以构建一个应用程序,它可以在窗口模式和全屏模式之间进行"大量"切换,而不会在交换机出现时遭受性能损失吗?
这篇文章不是要问如何使用它,而是何时使用它.
有很多关于窗口看门狗(WW)的文档,大多数微控制器已经包含它.每个供应商都声明WW适用于安全应用,但没有人更多地谈论这个主题.
我想指出一些具体的例子,但这些例子可能比"汽车制动系统"更多.
我们都知道WW必须既不太早也不太晚,但这种情况将如何有助于提高安全性?
谢谢!!
所以实际上我已经为此苦苦挣扎了几天。我正在使用 4 个主题的记录。我需要在 TimedWindow 上聚合记录。时间到了,我想向接收器主题发送已批准的消息或未批准的消息。这可能与 kafka 流有关吗?
即使窗口仍然打开,它似乎将每条记录下沉到新主题,这真的不是我想要的。
这是简单的代码:
builder.stream(getTopicList(), Consumed.with(Serdes.ByteArray(),
Serdes.ByteArray()))
.flatMap(new ExceptionSafeKeyValueMapper<String,
FooTriggerMessage>("", Serdes.String(),
fooTriggerSerde))
.filter((key, value) -> value.getTriggerEventId() != null)
.groupBy((key, value) -> value.getTriggerEventId().toString(),
Serialized.with(Serdes.String(), fooTriggerSerde))
.windowedBy(TimeWindows.of(TimeUnit.SECONDS.toMillis(30))
.advanceBy(TimeUnit.SECONDS.toMillis(30)))
.aggregate(() -> new BarApprovalMessage(), /* initializer */
(key, value, aggValue) -> getApproval(key, value, aggValue),/*adder*/
Materialized
.<String, BarApprovalMessage, WindowStore<Bytes, byte[]>>as(
storeName) /* state store name */
.withValueSerde(barApprovalSerde))
.toStream().to(appProperties.getBarApprovalEngineOutgoing(),
Produced.with(windowedSerde, barApprovalSerde));
Run Code Online (Sandbox Code Playgroud)
截至目前,每条记录都被下沉到传出主题,我只希望它在窗口关闭时发送一条消息,可以这么说。
这可能吗?
请参阅小提琴:http://sqlfiddle.com/#!6/ e6768/2
我有数据,如下所示:
DRIVER DROP
1 1
1 2
1 ReturnToBase
1 4
1 5
1 ReturnToBase
1 6
1 7
2 1
2 2
2 ReturnToBase
2 4
Run Code Online (Sandbox Code Playgroud)
我正在尝试对数据进行分组,因此对于每个驱动程序,每组返回基数都有一个分组编号.
我的输出应该如下所示:
DRIVER DROP GROUP
1 1 1
1 2 1
1 ReturnToBase 1
1 4 2
1 5 2
1 ReturnToBase 2
1 6 3
1 7 3
1 ReturnToBase 3
2 1 1
2 2 1
2 ReturnToBase 1
2 4 2
Run Code Online (Sandbox Code Playgroud)
我尝试使用窗口函数的组合来获得这个结果,但到目前为止我已经离开了
下面是我到目前为止所做的,它不应该是功能性的我试图弄清楚它是如何完成的,如果它甚至可能的话.
SELECT
ROW_NUMBER() OVER …
Run Code Online (Sandbox Code Playgroud) 我目前有一个使用 OGL 4.5 和 GLFW 3 的游戏。
我正在尝试创建一个允许在全屏和窗口模式之间切换的功能。然而,为了实现这一点,我似乎必须销毁当前窗口,然后在同一指针中创建一个新窗口(我在 GLFW 文档中将其红色)。
虽然这可行,并且我可以在两种模式之间进行交换,但一旦交换发生,它会导致引擎的一些关键部分停止绘制。
因此,我想知道是否有某种方法可以启用/禁用全屏而不破坏窗口并创建新窗口。
这是该函数的代码:
void TMooseEngine::toggleFullscreen()
{
_fullscreen = !_fullscreen;
glfwDestroyWindow(window);
delete _shader;
delete _skybox;
//delete _particulas;
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
if(_fullscreen){ //change to fullscreen
window = glfwCreateWindow(_width, _height, "Fate Warriors", glfwGetPrimaryMonitor(), NULL);
glfwMakeContextCurrent(window);
glViewport(0,0,_width,_height);
//culling
glEnable(GL_DEPTH_TEST);
glViewport(0,0,_width,_height);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glFrontFace(GL_CCW);
_shader = new Shader();
_skybox = new Skybox();
initUI();
}
else{ //change to windowed
window = glfwCreateWindow(_width, _height, "Fate Warriors", NULL, NULL);
glfwMakeContextCurrent(window);
glViewport(0,0,_width,_height);
//culling
glEnable(GL_DEPTH_TEST);
glViewport(0,0,_width,_height);
glEnable(GL_CULL_FACE); …
Run Code Online (Sandbox Code Playgroud) windowed ×9
apache-kafka ×2
fullscreen ×2
suppress ×2
android ×1
c# ×1
c++ ×1
directx-10 ×1
embedded ×1
f# ×1
glfw ×1
grouping ×1
linq ×1
opengl ×1
padding ×1
preference ×1
sql-server ×1
watchdog ×1