【问题标题】:Spark json schema validationSpark json 模式验证
【发布时间】:2020-11-06 07:25:55
【问题描述】:

我正在使用 python 库 Draft7Validator (https://python-jsonschema.readthedocs.io/en/stable/validate/) 来测试每个文件的 json 模式。不幸的是它很慢,在 scala/java 中有一个库,我可以在 Spark 中使用它来验证每个文件的 json 模式。

【问题讨论】:

标签: json scala apache-spark validation schema


【解决方案1】:

您可以使用everit 进行 json 验证。您可以找到样品here 我认为@Srinivas 也提供了一个不错的选项circe-json-schema,但是everit(它是 circe-json-schema 的基础库)也支持不同的草稿,因此这取决于您的验证要求和要使用的草稿

【讨论】:

  • 我们使用的是 Draft7,所以everit 应该没问题。您如何建议架构解决方案,以便必须验证每个文件,如果不正确移动到不同的目录。我想实施批量验证过程。
  • 您可以遍历您拥有的文件夹结构下的所有 json 文件名,并且在加载 everit 使用的 schema-validarion.json 后,您可以在列表上运行 foreach(使用 Java 中的流或仅使用Scala 中的列表)检查文件是否通过验证并将文件移动到“验证通过”或“验证失败”文件夹。这样您就不会与文件发生冲突,因为它们位于不同的位置(甚至与源不同),以后您可以对已通过或失败的文件执行任何操作。你甚至可以与.parallelStream并行运行
  • 或者如果您使用的是 Scala,只需添加 .par 以并行执行
  • 谢谢你,我会测试它。
  • everit 无法识别类型 [struct] org.everit.json.schema.SchemaException: #: unknown type: [struct]
猜你喜欢
  • 2011-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 2018-10-22
相关资源
最近更新 更多