我正在从 BigQuery 读取数据,并使用来自 Apache Beam API 的 RedisIO 写入 Redis。下面是代码片段。
pipeline.apply("Read Data From BigQuery",
BigQueryIO.readTableRows().withoutValidation()
.fromQuery(""))
.apply("Convert Table rows into Redis Entity",
ParDo.of(new RedisEntity()))
.apply("Write to Redis",
RedisIO.write().withEndpoint("localhost", 6379));
尝试执行代码时,我得到了 2,000 条用 redis 编写的记录,然后出现以下错误。
redis.clients.jedis.exceptions.JedisDataException: EXEC without MULTI at redis.clients.jedis.Pipeline.exec(Pipeline.java:139( at org.apache.beam.sdk.io.redis.RedisIO$Write$WriteFn.processElement(RedisIO.java:419(
如果我错过了什么,或者是否有更好的方法,请提供建议。
似乎是 RedisIO 中的一个错误,我已经向 Beam 提交了一个问题,并做了一个拉取请求来修复它。看看我猜对了。issues.apache.org/jira/browse/BEAM-5714