问题标签 [scalapb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
22 浏览

scalapb - 从线程池运行 scalapbc 命令

我正在尝试从线程池运行 scalapb 命令,每个线程都运行该scalapbc命令;

当我这样做时,我收到以下表单错误:

根据我的谷歌搜索,当 /tmp 文件夹已满或试图同时被多个代码访问时,会出现此问题。

我的问题是,有没有办法使用线程发出 scalapbc 命令而不会出现上述错误?如何确保各个线程使用的临时文件夹不会相互干扰?

当我运行代码时,大多数时候都会出现此问题,但有时构建也会通过。

0 投票
1 回答
106 浏览

apache-spark - 使用 bcl.DateTime 字段在原型案例类上创建数据框会抛出 none 不是术语异常

我有一个通过 scalapb 从 .proto 文件生成的案例类,它有一些 bcl.DateTime 类型的字段。案例类定义如下:

我能够创建这个案例类的一个实例并查看内容如下:

但是,当我在此之上创建 Spark 数据框时,如下所示:

我收到以下错误:

如果我从 proto 类中删除 DateTime 字段,它似乎工作正常。关于如何在带有 bcl.DateTime 字段的原型类之上创建数据帧的任何指示?

0 投票
1 回答
139 浏览

apache-spark - SparkSQL 与 ScalaPB:在输出原型格式中使用 MapType 会在调用 toByteString 时产生 scala.MatchError

以下是我的输出消息格式:

在准备输出数据集时,我使用以下方法来包含一个虚拟地图

在这一步之前它工作正常。但是,当我打电话时:

我收到以下错误:

如果我删除类别字段,它似乎工作正常。请让我知道如何将 MapType 字段编写为 protobuf 消息

0 投票
1 回答
80 浏览

apache-spark - 带有 ScalaPB 的 SparkSQL:从 DataFrame 转换为原型数据集时跳过原型字段时出错

我有以下原始消息,需要使用 ScalaPB 通过 Spark 编写:

TypeA并且TypeB是接收方的子类EnforcementData,它使用 protobuf-net 来反序列化。

现在,我的 Spark 数据框可以包含 a 列或 b 列。假设, df 是我的数据框,我称之为:

  • df.withColumn(b, null).as[EnforcementData].map(_.toByteArray)对于 TypeA 消息
  • df.withColumn(a, null).as[EnforcementData].map(_.toByteArray)用于 B 类消息

但是使用 protobuf-net 反序列化消息的接收器会引发 StackOverflow 异常。我还尝试传递一个虚拟案例类而不是 null ,但它似乎仍然不起作用。

请让我知道如何处理?

0 投票
1 回答
91 浏览

scala - 如何将 sbt-protoc 和 scalapb 与 sbt 交叉构建集成?

我有一个库,需要两个不同版本的库,"com.thesamet.scalapb" %% "compilerplugin"具体取决于 Scala 版本。

在我的project/scalapb.sbt我有这个代码:

执行sbt clean "++2.11.12 compile我得到>>>>>>>> Using lastest version. 2.12但在日志中,我还可以看到交叉构建插件在上一条消息之后将版本更改为 Scala 2.11:

所以我想顺序是:

  1. sbt 使用默认的 Scala 版本加载插件配置。
  2. 交叉构建更改了 scala 版本

如何sbt-protoc与 sbt cross-build 集成?

0 投票
1 回答
60 浏览

scala - 如何定义特定子类型的隐式编码器并将其传递给 AvroSchema

Encoder[E]是否可以为任何子类型E(例如,在is的代码实例中E扩展GeneratedEnum类的任何子类型)定义和传递到where是包含as 字段的某个案例类。EColorAvroSchema[C]CE

完整的源代码在这里

基本上希望 like 的任何子类型实例都GeneratedEnum编码ColorString.

0 投票
1 回答
55 浏览

scala - 如何将“编译中的目标”添加到使用惰性 val root = project.in(".") 定义的 SBT 项目中

我有一个项目:

我希望将 ScalaPB 添加到项目中,我需要添加:

如何将其添加到惰性验证项目中?

0 投票
0 回答
263 浏览

scala - Kubernetes 中使用 grpc 客户端的 grpc 服务的高延迟

我在 kubernetes 集群中部署了服务(都是用 scala 编写的),让我们将它们命名为外部服务和内部服务

  1. 外部服务 - 5 个 pod,暴露 REST API,通过 grpc 客户端使用内部服务 grpc API
  2. 内部服务1个pod,暴露grpc API

问题 - 当我使用某些 grpc 客户端(例如 BloomRPC)通过端口转发调用内部服务 grpc API 时,延迟在 1 秒(平均 300 毫秒)内非常好,但是当我使用 grpc 客户端(用 scala 编写)使用相同的 grpc API 时,它总是平均 > 2 秒。我知道由于 TPC 连接处理,第一次调用需要时间,但即使在 JVM 预热之后也总是需要 2-4 秒。我只在服务启动时创建一次 grpc 通道(在主方法中,异步存根)并重复使用相同的通道,没有启用客户端 grpc 负载平衡。如何改善延迟?

0 投票
0 回答
252 浏览

scala - 如何解决在 Windows10 的 scala 项目中编译 protobuf 的问题?

我在 scala 上有带有示例 protobuf 的简单代码

原型文件

项目文件夹中的 plugins.sbt

构建.sbt

在 sbt shell 调用命令编译时出现错误

什么是错误???我使用的是 Windows10 和 jdk 1.8,然后是 jdk 11。

0 投票
1 回答
48 浏览

scala - 如何仅为包含验证规则的消息生成验证器文件?

如何仅为包含验证规则的消息生成验证器文件?

在下面的示例中,实际上 sbt 编译生成 4 个 scala 类:一个用于 protobufA,一个用于 protobufB,一个用于两者的验证器消息。

我只想生成三个类:一个用于 protobufA,一个用于 protobufB,最后一个用于 protobufA 验证器类。

我有scalapb-validate-codegen 0.1.3 版。