Чтение CSV-файлов, сохраненных в формате hdf, с использованием sparklyr с локального рабочего стола

Мы пытаемся загрузить файл csv, который хранится в HDFS, с помощью функции spark_read_csv, доступной в sparklyr. Код R выполняется на рабочем столе Windows и настроен для подключения к удаленному кластеру пряжи в режиме клиента пряжи для отправки и выполнения заданий. Используемая версия свечи - 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
                         )

система ищет файл в удаленных hdf-файлах после того, как к имени пути добавляется буква диска C. Местоположение hdfs, в котором выполняется поиск по коду: hdfs: // имя-машины / 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 ответ

Использование hdfs:///user/xyz/adv.csv вместо использования /user/xyz/adv.csv добилось цели.

Спасибо @javierluraschi от sparklyr.

Другие вопросы по тегам