2017-07-13 5 views
1

sparklyrで利用可能なspark_read_csv関数を使用して、HDFSに保存されたcsvファイルをロードしようとしています。 Rコードは、Windowsデスクトップ上で実行され、ジョブをサブミットして実行するために、ヤーンクライアントモードでリモート糸クラスターに接続するように構成されています。使用されているスパークのバージョンは1.6.0です。 spark 1.6.0はCSVをサポートしていないため、com.databricks_spark-csv_2.10-1.0.3.jarおよびorg.apache.commons_commons-csv-1.1.jarをsparkクラスパスに追加しました。 問題:私たちはローカルデスクトップからのsparklyrを使用してhdfsに保存されたcsvファイルを読み取る

spark_read_csv(sc=sc 
         ,path ="/user/xyz/adv.csv" 
         ,name ="FinStatement" 
         ,infer_schema = TRUE 
         ,header = TRUE 
         ) 

を呼び出すと、それはパス名にドライブ文字「C」を前に付加した後、システムがリモートHDFS内のファイルを検索します。コードで検索されるhdfsの場所は、hdfs://machine-name/user/user1/adv.csvではなく、hdfs:// machine-name/C:/user/user1/adv.csvです。ファイル。 問題を解決するためのお手伝いをさせていただきます。

スパークバージョン:1.6.0 Sparklyrバージョン:0.5.6 Hadoopのバージョン:2.6.0 例外トレース:

Error: java.lang.IllegalArgumentException: Pathname /C:/user/user1/adv.csv from hdfs://machine-name/C:/user/p587722/adv.csv is not a valid DFS filename. 
    at org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:196) 
    at org.apache.hadoop.hdfs.DistributedFileSystem.access$000(DistributedFileSystem.java:105) 
    at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1118) 
    at org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1114) 
    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1114) 
    at org.apache.hadoop.fs.Globber.getFileStatus(Globber.java:57) 

Rstudioセッション情報:

HDFSを使用して
R version 3.3.2 (2016-10-31) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] stringr_1.2.0 rJava_0.9-8 dplyr_0.7.1 sparklyr_0.5.6 

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.10  rstudioapi_0.6 bindr_0.1  magrittr_1.5  xtable_1.8-2  R6_2.2.0   rlang_0.1.1  
[8] httr_1.2.1  tools_3.3.2  DBI_0.7   withr_1.0.2  dbplyr_1.1.0  htmltools_0.3.6 assertthat_0.2.0 
[15] rprojroot_1.2 digest_0.6.12 tibble_1.3.3  bindrcpp_0.2  shiny_1.0.3  base64enc_0.1-3 glue_1.1.1  
[22] mime_0.5   stringi_1.1.3 backports_1.0.5 jsonlite_1.5  httpuv_1.3.3  pkgconfig_2.0.1 

答えて

0

:/ /user/xyz/adv.csvを使用する代わりに、//user/xyz/adv.csvがそのトリックを行いました。

sparklyrの@javierluraschiに感謝します。

関連する問題