我建立了几个可在EMR上运行的Spark结构化流查询,它们是长时间运行的查询,并且需要始终运行,因为它们都是ETL类型的查询,当我向EMR上的YARN群集提交作业时,我可以提交一个单火花应用。因此,该spark应用程序应具有多个流查询。
我对如何以编程方式在同一提交中构建/启动多个流查询感到困惑。
例如:我有以下代码:
case class SparkJobs(prop: Properties) extends Serializable {
def run() = {
Type1SparkJobBuilder(prop).build().awaitTermination()
Type1SparkJobBuilder(prop).build().awaitTermination()
}
}
Run Code Online (Sandbox Code Playgroud)
我在我的主课上用 SparkJobs(new Properties()).run()
当我在Spark历史记录服务器中看到时,只有第一个Spark Streaming作业(Type1SparkJob)正在运行。
建议以编程方式在同一spark内引发多个流查询的方法是什么,我也找不到合适的文档。
所以我有一个 JSON 模式,其additionalProperties规则设置为falselike。
{
"type": "object",
"properties": {
"metadata": {
"type": "object",
"properties": {
"a": {
"type": "string"
},
"b": {
"type": "string"
},
"c": {
"type": "string"
}
}
},
"street_type": {
"type": "string",
"enum": [
"Street",
"Avenue",
"Boulevard"
]
}
},
"additionalProperties": false
}
Run Code Online (Sandbox Code Playgroud)
和一个像这样的有效负载
{
"metadata": {
"a": "aa",
"b": "bb",
"c": "cc",
"d": "dd"
}
}
Run Code Online (Sandbox Code Playgroud)
我是否应该期望我的 JSON 模式解析器/验证器通过验证,我正在使用的 JSON 模式解析器会通过com.github.fge.jsonschema.main.JsonSchema验证,但在设置为 的metadata/d模式中不存在,additionalPropertiesfalse
这是非常误导的,有人可以指导我正确的方向吗?
JSON 架构定义是否additionalProperties …