在 Scalding Type Safe API 中有没有办法使用两个或多个 ValuePipes 映射 WithValue?

Is there a way in Scalding Type Safe API to mapWithValue with two or more ValuePipes?

使用 Scalding,类型安全 API,此代码有效,其中 dictForKeysdictForValues 都是 ValuePipe[Map[String,String]]:

SomeKeyValueTypedPipe
  .mapWithValue(dictForKeys) { case ((key, value), dictForKeys) =>
       (dictForKeys.get.getOrElse(key, key), value) }
  .mapWithValue(dictForValues) { case ((key, value), dictForValues) =>
       (key, dictForValues.get.getOrElse(value, value)) }

我只是想知道是否有更紧凑的编写方式,即仅使用 1 个 mapWithValue 步骤和 2 个单独的 ValuePipes。

您可以创建一个映射元组的 ValuePipe,例如 ValuePipe[(Map[String, String], Map[String, String])],然后像这样使用它:

SomeKeyValueTypedPipe
 .mapWithValue(dict) { case ((key, value), (dictForKeys, dictForValues)) =>
   (dictForKeys.get.getOrElse(key, key), dictForValues.get.getOrElse(value, value)) }