我想为案例类RicherIndicatorCoder
始终应用自定义RicherIndicator
。此外,如果我无法为包含Tuples
的{{1}}或KVs
提供新的编码器,那么我想获得编译时或运行时错误,而不是使用次优编码器。 / p>
但是Scio似乎不喜欢RicherIndicator
注释:
@DefaultCoder
Scio也不优先向在@DefaultCoder(classOf[RicherIndicatorCoder]) // Ignored
case class RicherIndicator (
policy: Policy,
indicator: Indicator
)
注册的自定义编码器提供优先级,而是依靠其自身的默认编码器:
CoderRegistry
因此,我必须在出现这种类型的val registry = sc.pipeline.getCoderRegistry
registry.registerCoderForClass(classOf[RicherIndicator], RicherIndicatorCoder.of) // Not used
的任何地方使用setCoder(RicherIndicatorCoder.of)
,并仔细梳理管道,以防包含SCollection
的复合类型。
是否可以将自定义编码器设置为默认编码器,或者禁用基于木兰或Kryo的默认编码器?
答案 0 :(得分:0)
Java注释在Scala中不起作用。您可以像这样将Beam initializeGlobalData();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(SplashActivity.this, MainActivity.class);
startActivity(i);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
finish();
}
}, 2000);
包装为隐式Scio Coder
:
Coder
只要隐式对象在范围内,就应将其拾取。