繁体   English   中英

Databricks上的PySpark:读取从Azure Blob存储复制的CSV文件会导致java.io.FileNotFoundException

[英]PySpark on Databricks: Reading a CSV file copied from the Azure Blob Storage results in java.io.FileNotFoundException

我正在运行Azure Databricks 4.3(包括Apache Spark 2.3.1,Scala 2.11)。

我复制一个CSV从Azure的Blob存储使用的文件到Databricks集群dbutils.fs.cp加入到磁盘file:绝对local_path

copy_to = "file:" + local_path
dbutils.fs.cp(blob_storage_path, copy_to)

然后,当我尝试使用与file:相同的路径读取文件时,添加在前面:

csv_spark_df = sqlContext.read.format('csv').options(header='true', inferSchema='true').load(copy_to)

我收到一条错误消息,指出给定的路径不存在:

java.io.FileNotFoundException: File file:/<local_path>

如下所述,当我安装Azure Blob存储容器时,我可以使用已安装目录中文件的绝对local_path ,使用与上述相同的代码段正确地使用Spark读取文件:

https://docs.databricks.com/spark/latest/data-sources/azure/azure-storage.html#mount-azure-blob-storage-containers-with-dbfs

是否完全可以读取从Azure Blob存储复制的CSV文件,或者始终首选使用安装Azure Blob存储容器的解决方案?

我不确定文件将映射到什么。

我希望该路径是DBFS路径:

copy_to = "/path/file.csv"

这将假定为DBFS路径。

您可以随时这样做:

dbutils.fs.ls("/path")

验证文件副本。

尽管请注意,您无需将文件复制到DBFS即可加载到数据帧中-您可以直接从Blob存储帐户读取。 那是正常的做法。 您是否有理由要在本地复制它?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM