【问题标题】:Dataflow Datastore to GCS Template, javascriptTextTransformFunctionName Error数据流数据存储到 GCS 模板,javascriptTextTransformFunctionName 错误
【发布时间】:2019-01-09 16:49:16
【问题描述】:

我正在使用来自 Cloud Dataflow 的 Cloud Datastore 到 Cloud Storage 文本模板。

我的 python 代码正确提交了请求并使用javascriptTextTransformFunctionName 在我的 Google Cloud Storage 存储桶中运行正确的函数。

这是正在运行的代码的最小化部分

function format(inJson) {
var output = {};
output.administrator = inJson.properties.administrator.keyValue.path[0].id;

return output;

这是我要格式化、删减的 Json,但只有“属性”的其他子级。

  "properties": {
    "administrator": {
      "keyValue": {
        "path": [
          {
            "kind": "Kind",
            "id": "5706504271298560"
          }
        ]
      }
    }
  }
}

我得到了这个例外:

java.lang.RuntimeException: 
org.apache.beam.sdk.util.UserCodeException: 
javax.script.ScriptException: TypeError: Cannot read 
property "keyValue" from undefined in <eval> at line number 5

我理解错误的含义,但我不知道为什么会发生。如果您采用 format 函数和该 json 并通过浏览器控制台运行它,您可以轻松测试并看到它拉出并返回一个“管理员”等于“5706504271298560”的对象。

【问题讨论】:

    标签: google-cloud-platform google-cloud-datastore google-cloud-dataflow


    【解决方案1】:

    我没有找到解决您问题的方法,但我希望能对您有所帮助:

    1. 发现 this post 和 this one 存在相同问题。第一个是固定安装 NodeJS 库,第二个是更改 Java.Type() 的引号类型。
    2. Nashorn official docs:使用完全限定的 Java 类 name 调用 Java.type,然后调用返回的函数从 JavaScript 实例化一个类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      相关资源
      最近更新 更多