【问题标题】:Adding support for JS UDF in Google Dataflow template在 Google Dataflow 模板中添加对 JS UDF 的支持
【发布时间】:2019-03-20 13:55:00
【问题描述】:

我有来自谷歌云平台数据流模板的this code

我希望为其添加更多功能,即,我希望添加对 JavaScript UDF 的支持。当我尝试编译文件时,使用这个:

mvn compile exec:java \
-Dexec.mainClass=com.google.cloud.teleport.templates.${PIPELINE_NAME} \
-Dexec.cleanupDaemonThreads=false \
-Dexec.args=" \
--project=${PROJECT_ID} \
--stagingLocation=gs://${PROJECT_ID}/dataflow/${PIPELINE_FOLDER}/staging \
--tempLocation=gs://${PROJECT_ID}/dataflow/${PIPELINE_FOLDER}/temp \
--runner=DataflowRunner \
--windowDuration=2m \
--numShards=1 \
--topic=projects/${PROJECT_ID}/topics/windowed-files \
--outputDirectory=gs://${PROJECT_ID}/temp/ \
--outputFilenamePrefix=windowed-file \
--outputFilenameSuffix=.txt"

编译文件时出现以下错误:

An exception occured while executing the Java class. Class interface com.google.cloud.teleport.templates.PubsubToText$Options missing a property named 'topic'. -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli) on project google-cloud-teleport-java: An exception occured while executing the Java class. Class interface com.google.cloud.teleport.templates.PubsubToText$Options missing a property named 'topic'.

尽管如此,我已经通过了 --topic 标志并插入了适当的值。

【问题讨论】:

  • 其他用户将您的问题标记为低质量和需要改进。我重新措辞/格式化您的输入,使其更容易阅读/理解。请查看我的更改以确保它们反映您的意图。但我认为你的问题仍然无法回答。 现在应该edit你的问题,添加缺失的细节(见minimal reproducible example)。如果您对我有其他问题或反馈,请随时给我留言。
  • 不支持链接到源代码。请创建一个最小示例(不一定是您的完整项目!)并将该代码添加到问题中。

标签: java maven google-cloud-platform google-cloud-dataflow dataflow


【解决方案1】:

顶部的example 是错误的。你必须通过--inputTopic 而不是--topic。您可以在定义了ValueProvidercode 中看到这一点:

@Description("The Cloud Pub/Sub topic to read from.")
@Required
ValueProvider<String> getInputTopic();
void setInputTopic(ValueProvider<String> value);

您也可以从Console UI 运行模板,作业详细信息将显示该选项确实是inputTopic

【讨论】:

  • 即使我将--inputTopic 标志或任何其他变体(--InputTopicinputtopic)传递给它,它仍然显示相同的错误。奇怪的是,每次它显示缺少相同的属性,即,如果我通过--inputTopic[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli) on project google-cloud-teleport-java: An exception occured while executing the Java class. Class interface com.google.cloud.teleport.templates.PubsubToText$Options missing a property named 'inputTopic'. -&gt; [Help 1] 时传递--InputTopic 它显示缺少属性 InputTopic
  • 这并不奇怪,它只是意味着您传递的任何选项都不存在于模板中。您是在运行旧版本还是修改了代码?如果是后者,则可能是您修改了选项或忽略了扩展选项
【解决方案2】:

javadoc 中的调用示例现在应该反映正确的输入参数 (--inputTopic) here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-18
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    相关资源
    最近更新 更多