【问题标题】:Is there any way to check if file exists in Apache beam sdk without using pipeline有没有办法在不使用管道的情况下检查 Apache Beam sdk 中是否存在文件
【发布时间】:2019-08-01 15:57:16
【问题描述】:

我目前正在尝试使用 MatchResult 状态检查文件是否存在于集群中。即使文件存在,它也会返回 NOT_FOUND 状态。

MatchResult matchResult = FileSystems.match(output string)

if(matchResult.status() == MatchResult.Status.NOT_FOUND){
//do some operation 
//print file does not exist
}
else{
//print file exists
}

即使文件存在,上述代码也会返回未找到状态。

【问题讨论】:

  • 您不应该使用== 而不是= 吗?你想比较而不是分配
  • 是的,我使用的是 == ,抱歉打错了。有问题已更正

标签: java file apache-beam


【解决方案1】:

您的集群上有什么样的文件系统? AFAIK,Beam 文件系统仅支持 S3、GCS、HDFS 和本地 FS。 此外,如果它与集群上的真实路径匹配,则值得打印出“matchResult”并查看完整路径。

【讨论】:

  • HDFS 文件系统正在被使用并尝试打印 matchResult 状态和它所采用的路径。 HDFS 上确实存在路径,但结果为 NOT_FOUND。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-06
  • 1970-01-01
  • 2010-10-26
  • 2020-02-01
相关资源
最近更新 更多