小编Pat*_*zna的帖子

如何使用resourceGenerators复制Scala.js源映射?

我在使用时使用resourceGeneratorssbt键来复制fastOptJs生成的.js文件products,如下所示:

(resourceGenerators in Compile) <+=
        (fastOptJS in Compile in frontend, packageScalaJSLauncher in Compile in frontend, packageJSDependencies in Compile in frontend)
          .map((f1, f2, f3) => {
            Seq(f1.data, f2.data, f3)
          })
Run Code Online (Sandbox Code Playgroud)

在sbt中运行以下命令,我可以看到生成文件的路径:

> show frontend/fastOptJS
[info] Attributed(/some/path/frontend/target/scala-2.11/frontend-fastopt.js)
[success] Total time: 0 s, completed Mar 12, 2016 1:59:22 PM
Run Code Online (Sandbox Code Playgroud)

同样,我可以很容易地看到Scala.js生成的启动器结束的位置:

> show frontend/packageScalaJSLauncher
[info] Attributed(/some/path/frontend/target/scala-2.11/frontend-launcher.js)
[success] Total time: 0 s, completed Mar 12, 2016 2:00:10 PM
Run Code Online (Sandbox Code Playgroud)

但是,我无法找到指向.js.map文件位置的任务/密钥.我试着查看插件来源,但找不到它.有没有办法在不诉诸创建手动映射的情况下做到这一点build.sbt

scala sbt scala.js

6
推荐指数
1
解决办法
567
查看次数

用于 Splittable DoFn 读取无界 Iterable 的正确 RestrictionT 是什么?

我正在编写一个 Splittable DoFn 来读取 MongoDB 更改流。它允许我观察描述集合更改的事件,并且只要 oplog 有足够的历史记录,我就可以在我想要的任意集群时间戳处开始读取。集群时间戳是自纪元以来的秒数与给定秒内操作的序列号相结合。

我看过 SDF 的其他示例,但到目前为止我所看到的所有示例都假设有一个“可查找”数据源(Kafka 主题分区、Parquet/Avro 文件等)

MongoDB 公开的接口是一个简单的 Iterable,因此我无法真正seek获得精确的偏移量(除了在时间戳之后开始获取新的 Iterable 之外),并且它生成的事件只有集群时间戳 - 同样,没有与输出关联的精确偏移量元素。

为了配置 SDF,我使用以下类作为输入元素类型:

  public static class StreamConfig implements Serializable {
    public final String databaseName;
    public final String collectionName;
    public final Instant startFrom;

  ...
  }
Run Code Online (Sandbox Code Playgroud)

作为限制,我使用的是OffsetRange因为我可以将这些时间戳转换为长值并返回。对于偏移跟踪器,我选择了 GrowableOffsetRangeTracker,因为它可以处理潜在的无限范围。

我在提出范围结束估计器时遇到了问题 - 最后我假设now()将是最大潜在时间戳,因为我们可以读取流的最快速度是实时的。

  @GetInitialRestriction
  public OffsetRange getInitialRestriction(@Element StreamConfig element) {
    final int fromEpochSecond =
        (int) (Optional.ofNullable(element.startFrom).orElse(Instant.now()).getMillis() / 1000);
    final BsonTimestamp bsonTimestamp = new BsonTimestamp(fromEpochSecond, 0);
    return new OffsetRange(bsonTimestamp.getValue(), Long.MAX_VALUE); …
Run Code Online (Sandbox Code Playgroud)

java mongodb google-cloud-dataflow apache-beam

6
推荐指数
1
解决办法
414
查看次数

如何自动生成一个函数来匹配一个带有隐式实例的密封案例类族?

我有一个密封的案例类家族,它指定了一些规则,这些规则是从外部源反序列化的.我还有一个类型类,有几个实例来执行实际逻辑,如下所示:

import scala.util.Try

sealed trait ReaderConfig
case class Substring(begin: Int, end: Int) extends ReaderConfig
case class Regex(expr: String) extends ReaderConfig

trait Read[M[_], RC <: ReaderConfig] {
  def apply(config: RC, raw: String): M[String]
}

object Read {
  implicit val TryReadSubstring: Read[Try, Substring] = (config: Substring, raw: String) => Try {
    raw.substring(config.begin, config.end)
  }
  implicit val TryReadRegex: Read[Try, Regex] = (config: Regex, raw: String) => Try {
    config.expr.r.findFirstIn(raw).get
  }

  trait Helper[RC <: ReaderConfig] {
    def as[M[_]](implicit read: Read[M, RC]): M[String]
  }

  def …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala shapeless

5
推荐指数
1
解决办法
133
查看次数