当前位置: 首页 > 知识库问答 >
问题:

Apache Beam抛出无法设置编码器(null):java

金健
2023-03-14

我是Apache Beam的新手,我正在尝试连接mysql数据库的google云实例。当我运行下面的代码段时,它会引发下面的异常。

    Logger logger = LoggerFactory.getLogger(GoogleSQLPipeline.class);

    PipelineOptions options = PipelineOptionsFactory.create();

    Pipeline dataflowPipeline = Pipeline.create();

    dataflowPipeline.apply(JdbcIO.<KV<Integer, String>>read().withCoder(KvCoder.of(VarIntCoder.of(), StringUtf8Coder.of()))
            .withDataSourceConfiguration(JdbcIO.DataSourceConfiguration
                    .create("com.mysql.jdbc.Driver", "jdbc:mysql://<ip from google instance>:3306/foodmart")
                    .withUsername("root").withPassword("root"))
            .withQuery("select accouont_id,account_description  from account")
            .withRowMapper(new JdbcIO.RowMapper<KV<Integer, String>>() {
                @Override
                public KV<Integer, String> mapRow(ResultSet resultSet) throws Exception {
                    // TODO Auto-generated method stub
                    return KV.of(resultSet.getInt(1), resultSet.getString(2));
                }
            }));

    dataflowPipeline.run();

线程“main”java中出现异常。lang.IllegalArgumentException:无法在组织中设置编码器(null)。阿帕奇。梁sdk。重新包装。com.google.常见的基础前提条件。org上的checkArgument(prerequisions.java:122)。阿帕奇。梁sdk。价值观P收集。位于org的setCoder(PCollection.java:265)。阿帕奇。梁sdk。io。jdbc。JdbcIO$已读。在org上展开(JdbcIO.java:325)。阿帕奇。梁sdk。io。jdbc。JdbcIO$已读。在org上展开(JdbcIO.java:272)。阿帕奇。梁sdk。管道applyInternal(Pipeline.java:482)位于org。阿帕奇。梁sdk。管道applyTransform(Pipeline.java:422)位于org。阿帕奇。梁sdk。价值观P贝金。在org上应用(PBegin.java:44)。阿帕奇。梁sdk。管道在com上应用(Pipeline.java:164)。neudesic公司。com。GoogleSQLPipeline。main(GoogleSQLPipeline.java:24)

共有1个答案

柳英豪
2023-03-14

看起来,我对jar文件有一些问题。我已经重新创建了工作区和项目。然后,相同的代码运行时没有任何问题。

谢啦

 类似资料:
  • 有一个错误,其中登录的用户将尝试更新他们的帐户用户名,但遇到一个错误。在我的一生中,我无法弄清楚为什么有时(可能有1/20的用户遇到这种情况)找不到当前的用户。只有登录后,用户才能访问此页面。错误有: 投掷;//未处理的“错误”事件 TypeError:无法设置null的属性“username” 错误似乎发生在这里:user.username=req.body.username;

  • 问题内容: 为什么会出现错误或未捕获的TypeError:无法将属性’innerHTML’设置为null?我以为我了解innerHTML并在以前使用过。 问题答案: 您必须将div放在脚本之前,以便在加载脚本时该div存在。

  • 为什么我会得到一个错误或未捕获的TypeError:不能设置null的属性'innerhtml'?我以为我了解innerHTML并且在此之前使用过它。

  • 我有一个简单的html页面,在body标记中没有代码。我想通过JavaScript在body标记中插入html。 我的javascript文件如下所示。 现在我想要这个很长的html代码在页面加载时自动插入到body标记中。但它给了我我在标题中提到的错误。为什么? 而且这也是创建基于ajax的网站的正确方法吗(不重新加载页面),这意味着如果我调用服务器端脚本来更新这个很长的html代码并将其附加到

  • 我正在尝试修改bigquery-dataflow示例以处理CSV文件。https://github.com/GoogleCloudPlatform/bigquery-etl-dataflow-sample 我已将readObject更改为解析CSV并将其添加到data对象。在运行管道时,我收到以下错误: DoFnRunnerBase$DoFnProcessContext. out(DoFnRunn

  • 我有以下代码段: 然而,findbugs说有一种不好的做法: It:Iterator next()方法不能抛出NoSuchElementException(It\u NO\u SUCH\u元素),该类实现java。util。迭代器接口。然而,它的next()方法不能抛出java。util。无接触元素异常。应该更改next()方法,以便在没有更多元素可返回时调用它时抛出NoTouchElementE