首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据流将文件上传到/var/opt/google/ Dataflow /dataflow

数据流将文件上传到/var/opt/google/ Dataflow /dataflow
EN

Stack Overflow用户
提问于 2018-05-11 02:04:38
回答 1查看 365关注 0票数 3

这个问题刚刚在5/9/18开始发生...

数据流无法找到与我的类打包在一起的文件。我使用Class.getResource("/data.json")。堆栈驱动程序日志显示它正在/var/opt/google/dataflow/class-name.jar!/data.json.中查找该文件当我通过ssh进入工作进程的VM实例时,文件实际上在/var/opt/google/dataflow/dataflow/class-name.jar.中这在昨天是有效的。

更多信息5/11/18:我刚刚直接使用Apache Beam文档中的WordCount示例进行了测试:https://beam.apache.org/get-started/quickstart-java/

遵循了所有的步骤。然后在"src/main“中添加"resources/data.json”。将以下行添加到WordCount.ExtractWordsFn的processElement方法中:

代码语言:javascript
复制
    try {
      String jsonStr = new Scanner(new File(WordCount.class.getResource("/data.json").getFile())).useDelimiter("\\Z").next();
      System.out.println("====================================================");
      System.out.println(jsonStr);
      System.out.println("====================================================");
    } catch (Exception e) {
      e.printStackTrace();
    }

果然,在堆栈驱动程序中得到了相同的错误:

消息:“file:/var/opt/google/dataflow/classes-yGX0uczTTR8A8LXakSr0JA.jar!/data.json :java.io.FileNotFoundException(没有这样的文件或目录)”

当示例批处理仍在运行时,我ssh进入worker实例并检查/var/opt/google/dataflow。还有另一个"dataflow“目录,文件被复制到那里。因此确认了双数据流目录问题。

还有没有人遇到过这种情况?

将在Github中提交此问题。

EN

回答 1

Stack Overflow用户

发布于 2018-05-13 03:02:39

我解决了一个问题:使用Class.getResourceAsStream获取输入流。不管是什么原因,在getResource仍然失败的时候,getResourceAsStream仍然像预期的那样工作。就我的所有目的而言,输入流和URL一样好用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50278952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档