在 Scala 中扫描巨大的 JSON 文件以获取可反序列化的数据

2023-12-30

我需要能够处理大型 JSON 文件,在文件中迭代/流式传输时从可反序列化的子字符串实例化对象。

例如:


我没有使用 JSON 完成此操作(我希望有人能为您提供交钥匙解决方案),而是使用 XML 完成此操作,这里是一种处理方法。

它基本上是一个借助流解析器的简单 Map->Reduce 过程。

Map (your advanceTo)

使用流解析器,例如JSON 简单 http://code.google.com/p/json-simple/wiki/DecodingExamples#Example_5_-_Stoppable_SAX-like_content_handler(未测试)。当在回调中匹配您的“路径”时,通过将其写入流(文件备份或内存中,取决于您的数据)来收集下面的任何内容。那将是你的foo你的例子中的数组。如果您的映射器足够复杂,您可能希望在映射步骤中收集多个路径。

Reduce (your stream[Data])

由于您上面收集的流看起来非常小,因此您可能不需要再次映射/拆分它们,并且可以直接在内存中将它们解析为 JSON 对象/数组并操作它们(转换、重新组合等)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Scala 中扫描巨大的 JSON 文件以获取可反序列化的数据 的相关文章

  • 解析包含 json 字符串的 json

    我有一个 json 里面有另一个 json 但它在双引号内 因此它给了我一个解析错误 除了使用之外还有什么方法可以解析这个jsongsub替换双引号 obj Name FirstName Douglas LastName Crockford
  • 如何将带有自定义标头的任意 JSON 数据发送到 REST 服务器?

    TL DR 如何将 JSON 字符串发送到带有 auth 标头的 REST 主机 我尝试了 3 种不同的方法 发现一种适用于匿名类型 为什么我不能使用匿名类型 我需要设置一个名为 Group Name 的变量 并且连字符不是有效的 C 标识
  • 手动排除sbt中的一些测试类

    我通常在 CI 中执行以下命令 清理更新编译测试发布 但是 我想从 sbt 命令行中排除 1 个 或几个 测试类 我怎样才能做到这一点 我不想更改我的代码以使用忽略等 两种可能的选择 test only See http www scala
  • 为什么 Cassandra 客户端在生产中没有 epoll 时会失败? [复制]

    这个问题在这里已经有答案了 当我在本地运行服务时 我收到一条警告 指出 epoll 不可用 因此它使用 NIO 很公平 当我将其部署到 Kubernetes 中时 我得到了以下信息 这导致服务无法运行 2017 03 29T19 09 22
  • 如何将 JsonNode 转换为 ObjectNode

    我有一个com fasterxml JsonNode带有一些数据的对象 我需要对其数据进行一些操作 我用谷歌搜索答案但没有得到正确的答案 您能建议我如何操作 JsonNode 数据吗 我也尝试过转换JsonNode to ObjectNod
  • 如何通过 JSON / JS 在 Jenkins 中添加 CSRF 面包屑

    我想在 Jenkins 中通过 API 创建作业 但无法连接 Jenkins 中的 CSRF 保护课程 我得到了一个面包屑 但不知道如何将其附加到 JSON 或 JavaScript 中的 url 请求 以通过 POST 方法获取数据传递
  • Play框架:读取包含空值的Json

    我正在尝试在 Play Scala 程序中读取 Json 数据 Json 的某些字段可能包含空值 因此我定义 Reads 对象的方式如下 implicit val readObj Reads ApplyRequest JsPath a re
  • 来自不同级别的一对值根据邻居成员选择一个

    我正在尝试使用 jq 遍历对象数组并将其转换为 csv 我可以做一些选择和 csv 部分 但我正在努力解决的是如何获得Name每个对象的标签值 json 看起来像这样 Groups Instances InstanceType m5 xla
  • 最小有效 JSON 是多少?

    我仔细阅读了 JSON 描述http json org http json org 但我不确定我是否知道这个简单问题的答案 最小可能的有效 JSON 字符串是什么 string 该字符串是有效的 JSON 吗 42简单的数字是有效的 JSO
  • 如何在cassandra中保存spark流数据

    构建 sbt以下是build sbt文件中包含的内容 val sparkVersion 1 6 3 scalaVersion 2 10 5 resolvers Spark Packages Repo at https dl bintray
  • 使用 JSONP 时出现“无效标签”?

    我的 JSONP 请求有问题 数据不会显示 Firebug 显示 无效标签 错误 我的 JavaScript ajax url link dataType jsonp beforeSend function xhr var base64 b
  • Scala 模式匹配打印漂亮

    是否有可能以某种方式编组部分函数 假设它总是只包含一种情况 进入某物人类可读的 假设我们有 Any 类型的集合 消息 List Any 以及使用模式匹配块定义的 PartialFuntion Any T 的数量 case object R1
  • Web API 2.0 使用 pascalcase 模型接收驼峰式命名的 JSON 数据

    我正在尝试对我的 Web API 进行 PUT 调用 我在 WebApiConfig cs 中设置了以下内容 以处理以驼峰形式将数据发送回我的 Web 项目 config Formatters JsonFormatter Serialize
  • 是否可以检测流是否已被客户端关闭?

    简要介绍一下情况 我有一项服务可以通过套接字接收信息并发送回复 连接不安全 我想设置另一个可以为这些连接提供 TLS 的服务 这个新服务将提供单个端口并根据提供的客户端证书分发连接 我不想使用 stunnel 有几个原因 其中之一是每个接收
  • 带可变参数的 Spark UDF

    如文档中所示 列出最多 22 个参数是唯一的选择吗 https spark apache org docs 1 5 0 api scala index html org apache spark sql UDFRegistration ht
  • 向前和向后迭代

    我们有一个双端结构列表 例如LinkedList 我需要向前和向后迭代元素 例如 向前 4 次 然后向后 2 次 然后向前 5 次 在 C 中它将是 iter iter iter 在 Rust 中 我只看到 next and rev 这很不
  • 参考上一个问题:为什么 VBA 没有加载所有发票详细信息

    除了上一个问题之外 我们在销售发票上仍然存在相同的加载失败问题 下面的 VBA Json 仍然仅加载一行或第一个产品详细信息行 而不是与表中该销售发票合作的所有产品行详细信息 我们希望下面的 VBA 能够根据参数加载发票详细信息 例如 如果
  • Apache Camel 的 JsonMappingException

    我在骆驼路线上遇到以下异常 Caused by com fasterxml jackson databind JsonMappingException No serializer found for class org apache cam
  • 由于 json 字符串化 dict 键导致数据丢失

    考虑下面的例子 gt gt gt import json gt gt gt d 0 potato 0 spud gt gt gt json dumps d 0 potato 0 spud gt gt gt json loads json d
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该

随机推荐

  • 微服务架构:跨服务数据共享

    考虑在线商店项目的以下微服务 用户服务保留有关商店用户的帐户数据 包括名字 姓氏 电子邮件地址等 购买服务跟踪有关用户购买的详细信息 每个服务都提供一个用于查看和管理其相关实体的 UI 购买服务索引页面列出了购买情况 每个采购项目应具有以下
  • 如何在 .cargo/config 文件中使用环境变量?

    我在用着 cargo config像这样 target arm linux androideabi linker home rico android ndk r13b toolchains arm linux androideabi 4 9
  • iframe加载后如何隐藏父垂直滚动条?

    我已附上演示该问题的示例代码 我正在 Firefox 3 5 7 中检查这一点 问题是父级 HTML 有一个滚动条 并且它加载一个全屏的 iframe 高度 100 宽度 100 我希望在加载 iframe 后删除父级滚动条 1 这可以吗
  • 在 TypeScript 中迭代接口属性

    我需要将接口属性映射到对象 interface Activity id string title string body string json Object 我目前正在做 headers Array text id value id te
  • ASP.NET MVC2 中的正确错误处理

    我在基本控制器中有一个覆盖 OnException ExceptionContext filterContext 来捕获应用程序中的任何错误 然后记录它们 我在应用程序中遇到的问题是 此特定方法因某些错误而被触发四次 我将引导您完成一个场景
  • 使用多个模型获取进行主干视图渲染

    我需要在带有主干的 html 模板中使用 1 个模型和 1 个集合 但有时 html是在模型之后准备好的 我有 var FormUtilisateurView Backbone View extend initialize function
  • 嵌套集合、php 数组和转换

    我需要将我的嵌套集结构 mysql 转换为这个空间树的json 1 http blog thejit org wp content jit 1 0a examples spacetree html http blog thejit org
  • 从后台线程更新 BindingList<>?

    我想知道如何使用 WPF 中的 Dispatcher 从另一个线程安全地更新我的 BindingList 集合 我也愿意接受其他解决方案 非常感谢 卡韦 我更喜欢安排一个Task到 UI 线程 您可以通过调用获取 UI 线程调度程序Task
  • SpecFlow:ClassInitialize 和 TestContext

    首先 我是 SpecFlow 的新手 我有一个功能文件 我已经 想要使用 MSTest 自动运行它作为功能测试 涉及完全设置的服务器 数据访问 为此 我必须使用 SpecFlow 的 Given 块中的数据配置服务器 然后启动它 我还必须将
  • 是否可以强制 Hibernate 嵌入实体?

    在我的用例中 我想 Embedded一类C在一个实体中 另一个实体指的是C with OneToMany协会 因此C注释为 Entity 我知道这似乎是糟糕的设计 但我相信这对我的情况来说非常有意义 是否可以强制 Hibernate 嵌入实
  • Jest 测试中的“requestAnimationFrame”polyfill 错误

    升级到 React 后运行 Jest 单元测试时出现此错误 React depends on requestAnimationFrame Make sure that you load a polyfill in older browser
  • 从中心和半径创建 SqlGeography 多边形圆

    我想使用 C 在 sql server 2008 地理字段中保存一个圆圈 在 C 中 我有纬度 经度和半径 但我找不到一种方法来计算代表圆的多边形并创建一个SqlGeography从中 我尝试使用以下函数来创建多边形 private Lis
  • 使用数据收集器 UDC 的替代品?

    由于 UDC 是不再支持 http wiki eclipse org UDC或者 Eclipse 的一部分 我想知道是否有替代品 我想获得有关我们的用户组如何实际使用 Eclipse 的更多信息 以便积极主动地尝试改善他们的环境 我想收集的
  • 使用小米5 MIUI 8 Android Studio进行调试

    我无法从 Android Studio 启动应用程序 当我单击 运行 时 我选择我的设备 并且出现以下消息 但事实并非如此 该应用程序未安装在设备中 在 运行 控制台中 出现以下内容 04 22 15 53 08 Launching app
  • WScript.Shell Exec 的实时控制台输出

    我花了一天的大部分时间寻找解决方案 我开始认为这可能无法满足我的要求 我的基本设置是运行从 Excel VBA 代码调用的 vbscript vbs vba 代码必须继续运行并保持 vbscript 运行 但会不时使用以下命令对其进行监视E
  • 每次进行更改时回收应用程序池

    我制作了一个多语言网站 其中在同一网站上包含 4 个域 因此也包含 4 种不同的语言和网站树 但是 每次我需要发布对网站的新更改或其他更改 例如更新模板 脚本等 时 我都必须回收应用程序池 以使更改在以访问者身份查看网站时显示 我该如何解决
  • 如何在 athena 上的字符串数据类型上提取月份名称

    SELECT sales invoice date MONTH DATE TRUNC month CASE WHEN TRIM sales invoice date THEN DATE 1999 12 31 ELSE DATE PARSE
  • 复制表更改 1 列的值并将其插入到同一个表中

    标题基本上概括了所有内容 以及我在这里想要完成的任务 更多信息 我得到了一个有 4 列的表格 我需要它的精确副本 但只需要更改一列的值 假设该列名为客户编号 即 123456 其他值并不重要 如何复制整个表并将客户编号更改为 123457
  • TPL 数据流:将传入集合展平为顺序项目

    我正在使用 TPL 数据流构建一个应用程序 实际上我有以下问题 我有一个变换块var tfb1 new TranformBlock
  • 在 Scala 中扫描巨大的 JSON 文件以获取可反序列化的数据

    我需要能够处理大型 JSON 文件 在文件中迭代 流式传输时从可反序列化的子字符串实例化对象 例如 我没有使用 JSON 完成此操作 我希望有人能为您提供交钥匙解决方案 而是使用 XML 完成此操作 这里是一种处理方法 它基本上是一个借助流