2017-04-07 4 views
0

아래 예외 상황에 따라 기본 라이브러리가 지원하지 않는 것으로 보아 와일드 카드 문자 "*"를 TextIO 및 로컬 파일과 사용할 수 없습니다. Google Cloud 스토리지 경로를 사용하면 코드가 와일드 카드로 잘 작동합니다. 와일드 카드를 어떤 방식으로도 탈출해야합니까?Apache Beam TextIO 와일드 카드 (로컬 파일)

java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:498) 
     at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: java.nio.file.InvalidPathException: Illegal char <*> at index 36: C:\input\* 
     at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) 
     at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) 
     at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) 
     at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94) 
     at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255) 
     at java.nio.file.Paths.get(Paths.java:84) 
     at org.apache.beam.sdk.util.FileIOChannelFactory.specToFile(FileIOChannelFactory.java:81) 
     at org.apache.beam.sdk.util.FileIOChannelFactory.match(FileIOChannelFactory.java:92) 
     at my.package.XmlRawIO$Read$Bound.expand(XmlRawIO.java:235) 
     at my.package.XmlRawIO$Read$Bound.expand(XmlRawIO.java:151) 
     at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:475) 
     at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:389) 
     at org.apache.beam.sdk.values.PBegin.apply(PBegin.java:47) 
     at org.apache.beam.sdk.Pipeline.apply(Pipeline.java:160) 
     at my.package.PushEnactorTransactions.main(PushTransactions.java:70) 
     ... 6 more 

답변

1

이전에는 Apache Beam의 로컬 파일 시스템 지원이 Windows OS에서 패턴 일치를 지원하지 않는 문제가있었습니다. 다른 운영체제의 로컬 파일 시스템, 운영체제의 Google Cloud Storage 등은 예상대로 작동했습니다.

최근이 분야에서 많은 개선이 이루어졌으며 더 많은 부분이 진행 중입니다. 나는이 특별한 예외가 수정되었다고 생각한다. 그래서 새로운 버전으로 다시 시도하는 것이 좋다.