首页 > 解决方案 > sparklyr::spark_read_csv java.net.URISyntaxException 在 Windows

问题描述

我在 Windows 上运行 RStudio,并使用 databricks-connect 成功连接到 Azure Databricks。在 Databricks 上,我在 /mnt/clientdata 上安装了 Azure Datalake Gen2 文件系统。在 Python 中,在 Windows 机器上,我可以成功运行

df = spark.read.format("csv").option("header", "true").load("dbfs:/mnt/clientdata/rawdata/instrumentstatic/instrumentstatic-asisa/v2.6/coronation/2020/05/12/114543/InstrumentStaticData_JPM_20200511_20200512132625.csv.gz")

如果我运行相同的场景,使用相同的路径,但使用 sparklyr::spark_read_csv,我会得到一个

Error: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: C:%5Cmnt%5Cclientdata%5Crawdata%5Cinstrumentstatic%5Cinstrumentstatic-asisa%5Cv2.6%5Ccoronation%5C2020%5C05%5C12%5C114543%5CInstrumentStaticData_JPM_20200511_20200512132625.csv.gz

sparklyr::spark_read_csv调用spark_normalize_path,后者调用 R 基本函数normalizePath。此函数附加 C:\ 或 C:\currentdirpath,具体取决于我是否在路径中指定 dbfs:。如果我在sparklyr中删除对normalizePath的调用,我的代码就会完美运行。

在 Windows 上运行 sparklyr 时如何解决此问题?

标签: sparklyr

解决方案


带有三个正斜杠的引用路径:dbfs:///mnt/clientdata/...


推荐阅读