使用来自本地桌面

时间:2017-07-13 18:27:09

标签: r hadoop sparklyr

我们正在尝试使用sparklyr中提供的spark_read_csv函数加载存储在HDFS中的csv文件。 R代码在Windows桌面上运行,并配置为以纱线客户端模式连接到远程纱线群集以提交和执行作业。使用的spark版本是1.6.0。 我们已将com.databricks_spark-csv_2.10-1.0.3.jar和org.apache.commons_commons-csv-1.1.jar包含在spark类路径中,因为spark 1.6.0不支持CSV。 问题:我们打电话时

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

系统在将驱动器号'C'添加到路径名后,在远程hdfs中查找该文件。代码搜索的hdfs位置是hdfs:// machine-name / C:/user/user1/adv.csv而不是查看hdfs://machine-name/user/user1/adv.csv,因此无法检索文件。 非常感谢您解决问题的任何帮助。

Spark版本: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会话信息:

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 

1 个答案:

答案 0 :(得分:2)

使用hdfs:///user/xyz/adv.csv而不是使用/user/xyz/adv.csv就可以了。

感谢来自sparklyr的@javierluraschi。