apache-beam - Apache Beam TextIO.read().from() 不解释文件模式中的转义特殊字符
问题描述
环境
- Java SDK 2.33.0
设置
$ mkdir -p /tmp/beam
$ echo "test" >> "/tmp/beam/test*.txt"
测试管道
public class PipelineTest {
@Test
public void test() {
Pipeline p = TestPipeline.create().enableAbandonedNodeEnforcement(false);
String filename = "/tmp/beam/test\\*.txt";
PCollection<String> input = p.apply(TextIO.read().from(filename));
PAssert.that(input).containsInAnyOrder("test");
p.run();
}
}
此测试失败并显示以下消息。
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 10.66 s <<< FAILURE! - in PipelineTest
[ERROR] test Time elapsed: 10.645 s <<< ERROR!
org.apache.beam.sdk.Pipeline$PipelineExecutionException: java.io.FileNotFoundException: No files matched spec: /tmp/beam/test\*.txt
at PipelineTest.test(PipelineTest.java:28)
Caused by: java.io.FileNotFoundException: No files matched spec: /tmp/beam/test\*.txt
如何读取包含星号或其他特殊字符的文件?
解决方案
现在你只需要重命名这些文件。我已经提交了https://issues.apache.org/jira/browse/BEAM-13231
推荐阅读
- java - 具有 SSL 配置的 AWS Elastic Beanstalk 单实例抛出“HTTP 方法名称必须是令牌”
- android-studio - 将 Kotlin 转换为 Java
- android - centerVertical 在布局中不起作用
- node.js - Firebase 函数部署问题:在 %RESOURCE_DIR% 中找不到 package.json
- mql4 - 如何在 MQL4 中获取历史柱线的 OHLC 价格?
- vba - 继续循环且未在最后一条记录处结束的邮件合并脚本
- ruby-on-rails - 使控制器外的 caches_action 无效
- android - MediaStyle 通知无法正常工作
- php - 数组循环(循环计数大于数组索引)
- python - TypeError:“FirefoxWebElement”对象不可迭代