我不了解动态绑定和适当覆盖的概念:
这是一些代码:
class Cake {
public void taste (Cake c) {
System.out.println("In taste of Cake class");
}
}
class ChocolateCake extends Cake {
public void taste(Cake c) {
System.out.println("In taste (Cake version) of ChocolateCake class");
}
public void taste(ChocolateCake cc) {
System.out.println("In taste (ChocolateCake version) of ChocolateCake class");
}
}
public static void main(String[] args)
{
ChocolateCake cc = new ChocolateCake();
Cake c = new ChocolateCake();
Cake c1 = new Cake();
Cake c2 = new ChocolateCake();
c1.taste(cc);
c1.taste(c);
c2.taste(cc);
c2.taste(c); …Run Code Online (Sandbox Code Playgroud) 我正在使用该telegraf软件包开发电报机器人。(版本 4.1.1)
一切正常,直到我开始使用来自 Telegraf 包的更多模块,如Extra和mark-up。
我开始收到此错误:
internal/modules/cjs/loader.js:800
throw err;
^
Error: Cannot find module 'typegram/callback'
Require stack:
- C:\gitprojects\bot\node_modules\telegraf\lib\telegram-types.js
- C:\gitprojects\bot\node_modules\telegraf\lib\context.js
- C:\gitprojects\bot\node_modules\telegraf\lib\composer.js
- C:\gitprojects\bot\node_modules\telegraf\lib\telegraf.js
- C:\gitprojects\bot\node_modules\telegraf\lib\index.js
- C:\gitprojects\bot\index.js
?[90m at Function.Module._resolveFilename (internal/modules/cjs/loader.js:797:15)?[39m
?[90m at Function.Module._load (internal/modules/cjs/loader.js:690:27)?[39m
?[90m at Module.require (internal/modules/cjs/loader.js:852:19)?[39m
?[90m at require (internal/modules/cjs/helpers.js:74:18)?[39m
at Object.<anonymous> (C:\gitprojects\bot\node_modules\?[4mtelegraf?[24m\lib\telegram-types.js:16:14)
?[90m at Module._compile (internal/modules/cjs/loader.js:959:30)?[39m
?[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)?[39m
?[90m at Module.load (internal/modules/cjs/loader.js:815:32)?[39m
?[90m at Function.Module._load (internal/modules/cjs/loader.js:727:14)?[39m
?[90m at Module.require (internal/modules/cjs/loader.js:852:19)?[39m {
code: ?[32m'MODULE_NOT_FOUND'?[39m,
requireStack: [
?[32m'C:\\gitprojects\\bot\\node_modules\\telegraf\\lib\\telegram-types.js'?[39m, …Run Code Online (Sandbox Code Playgroud) 我使用结构化流来读取kafka主题,使用spark 2.4和scala 2.12
我使用检查点来使我的查询具有容错能力。
但是,每次我开始查询时,它都会跳转到当前偏移量,而不会在连接到主题之前读取现有数据。
我缺少 kafka 流的配置吗?
读:
val df = spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "localhost:9092")
.option("subscribe", "test")
.option("maxOffsetsPerTrigger","1")
.option("startingOffset","earliest")
.option("auto.offset.reset","earliest")
.load()
val msg = df.select($"value" cast "string", $"topic", $"partition", $"offset")
Run Code Online (Sandbox Code Playgroud)
写:
val query= msg.writeStream
.foreachBatch(
(dfbatch: Dataset[Row], batchid: Long) =>
{
println(s"IM AT BATCH ID: $batchid")
dfbatch.show()
dfbatch.write.csv(s"s3a://abucket/$param")
}
)
.option("checkpointLocation","s3a://checkpoint/")
.trigger(Trigger.ProcessingTime("10 seconds"))
.format("console")
.start()
query.awaitTermination()
Run Code Online (Sandbox Code Playgroud)
编辑:
这是我清空检查点目录后的日志:
0/07/11 18:15:16 INFO CheckpointFileManager: Writing atomically to s3a://checkpoint/metadata using temp file s3a://checkpoint/.metadata.304a751a-68b7-4b8d-858c-3aa5df272db4.tmp
20/07/11 18:15:17 INFO CheckpointFileManager: Renamed temp …Run Code Online (Sandbox Code Playgroud)