[ 
https://issues.apache.org/jira/browse/BEAM-2298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16078745#comment-16078745
 ] 

ASF GitHub Bot commented on BEAM-2298:
--------------------------------------

GitHub user flaviocf opened a pull request:

    https://github.com/apache/beam/pull/3521

    [BEAM-2298] Making LocalFileSystem default and stripping file spec prefixes.

    Hi @lukecwik, can you please take a look?
    
    Windows OS currently has three problems reading file specs from pipeline 
options.
    1. The scheme parsing fails to recognize local drive as local filesystem.
    2. It fails if we add “file:” to start of path (also true for Linux)
    3. It doesn’t recognize glob (*) in file matching.
    
    This change fixes problem number 1 and 2, not 3. Because of that, more 
tests run in Windows OS start passing, but the glob tests still fail.
    
    The approach is to set LocalFileSystem as default, remove "file:", and get 
rid of any forward-slashes in the beginning of paths for Windows OS, since 
Windows Path Parser rejects slashes before the drive specification.
    
    From the examples linked in the JIRA issue:
    inputFile=c:/Users/lcwik/Desktop/beamRC4Java/word-count-beam/pom.xml (Still 
works)
    inputFile=c:/Users/lcwik/Desktop/beamRC4Java/word-count-beam/pom.x* (Still 
doesn’t work, because of glob)
    inputFile=file:/c:/Users/lcwik/Desktop/beamRC4Java/word-count-beam/pom.xml 
(Starts working)
    
inputFile=file:///c:/Users/lcwik/Desktop/beamRC4Java/word-count-beam/pom.xml 
(Starts working)
    


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/flaviocf/beam osbug

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/beam/pull/3521.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #3521
    
----
commit 5273be6078da8097bf612cfdd21d51934a399743
Author: Flavio Fiszman <flavi...@flaviocf-macbookpro.roam.corp.google.com>
Date:   2017-06-30T17:14:34Z

    Adding local filesystem as default and stripping away prefix from local 
files in pipeline options.

----


> Java WordCount doesn't work in Window OS for glob expressions or file: 
> prefixed paths
> -------------------------------------------------------------------------------------
>
>                 Key: BEAM-2298
>                 URL: https://issues.apache.org/jira/browse/BEAM-2298
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-java-core
>            Reporter: Pei He
>            Assignee: Flavio Fiszman
>             Fix For: 2.2.0
>
>
> I am not able to build beam repo in Windows OS, so I copied the jar file from 
> my Mac.
> WordCount failed with the following cmd:
> java -cp beam-examples-java-2.0.0-jar-with-dependencies.jar
>  org.apache.beam.examples.WordCount --inputFile=input.txt --output=counts
> May 15, 2017 6:09:48 AM org.apache.beam.sdk.io.FileBasedSource 
> getEstimatedSizeB
> ytes
> INFO: Filepattern input.txt matched 1 files with total size 0
> May 15, 2017 6:09:48 AM org.apache.beam.sdk.io.FileBasedSource 
> expandFilePattern
> INFO: Matched 1 files for pattern input.txt
> May 15, 2017 6:09:48 AM org.apache.beam.sdk.io.FileBasedSource split
> INFO: Splitting filepattern input.txt into bundles of size 0 took 0 ms and 
> produ
> ced 1 files and 0 bundles
> May 15, 2017 6:09:48 AM org.apache.beam.sdk.io.WriteFiles$2 processElement
> INFO: Finalizing write operation 
> TextWriteOperation{tempDirectory=C:\Users\Pei\D
> esktop\.temp-beam-2017-05-135_13-09-48-1\, windowedWrites=false}.
> May 15, 2017 6:09:48 AM org.apache.beam.sdk.io.WriteFiles$2 processElement
> INFO: Creating 1 empty output shards in addition to 0 written for a total of 
> 1.
> Exception in thread "main" 
> org.apache.beam.sdk.Pipeline$PipelineExecutionExcepti
> on: java.lang.IllegalStateException: Unable to find registrar for c
>         at 
> org.apache.beam.runners.direct.DirectRunner$DirectPipelineResult.wait
> UntilFinish(DirectRunner.java:322)
>         at 
> org.apache.beam.runners.direct.DirectRunner$DirectPipelineResult.wait
> UntilFinish(DirectRunner.java:292)
>         at 
> org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:200
> )
>         at 
> org.apache.beam.runners.direct.DirectRunner.run(DirectRunner.java:63)
>         at org.apache.beam.sdk.Pipeline.run(Pipeline.java:295)
>         at org.apache.beam.sdk.Pipeline.run(Pipeline.java:281)
>         at org.apache.beam.examples.WordCount.main(WordCount.java:184)
> Caused by: java.lang.IllegalStateException: Unable to find registrar for c
>         at 
> org.apache.beam.sdk.io.FileSystems.getFileSystemInternal(FileSystems.
> java:447)
>         at org.apache.beam.sdk.io.FileSystems.match(FileSystems.java:111)
>         at 
> org.apache.beam.sdk.io.FileSystems.matchResources(FileSystems.java:17
> 4)
>         at 
> org.apache.beam.sdk.io.FileSystems.filterMissingFiles(FileSystems.jav
> a:367)
>         at org.apache.beam.sdk.io.FileSystems.copy(FileSystems.java:251)
>         at 
> org.apache.beam.sdk.io.FileBasedSink$WriteOperation.copyToOutputFiles
> (FileBasedSink.java:641)
>         at 
> org.apache.beam.sdk.io.FileBasedSink$WriteOperation.finalize(FileBase
> dSink.java:529)
>         at 
> org.apache.beam.sdk.io.WriteFiles$2.processElement(WriteFiles.java:59
> 2)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to