gpt4 book ai didi

python - AnalysisException : Path does not exist: dbfs:/databricks/python/lib/python3. 7/site-packages/sampleFolder/data;

转载 作者:行者123 更新时间:2023-12-04 07:26:22 26 4
gpt4 key购买 nike

我将以下代码打包在 whl 文件中:

from pkg_resources import resource_filename
def path_to_model(anomaly_dir_name: str, data_path: str):
filepath = resource_filename(anomaly_dir_name, data_path)
return filepath
def read_data(spark) -> DataFrame:
return (spark.read.parquet(str(path_to_model("sampleFolder", "data"))))
我确认 whl 文件正确包含 sampleFolder/data/目录下的 Parquet 文件。当我在本地运行它时,它可以工作,但是当我将此 whl 文件上传到 dbfs 并运行时,我收到此错误:
AnalysisException: Path does not exist: dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data;
我确认这个目录实际上不存在:dbfs:/databricks/python
知道这个错误可能是什么吗?
谢谢。

最佳答案

默认情况下,Spark on Databricks 使用 DBFS 上的文件,直到您明确更改架构。在您的情况下,path_to_model函数返回字符串 /databricks/python/lib/python3.7/site-packages/sampleFolder/data ,并且因为它没有显式模式,所以 Spark 使用 dbfs架构。但是文件在本地节点上,而不是在 DBFS 上——这就是 Spark 找不到它的原因。
要解决这个问题,您需要将数据复制到 DBFS,然后从那里读取。这可以通过 dbutils.fs.cp 来完成命令。将代码更改为以下内容:

def read_data(spark) -> DataFrame:
data_path = str(path_to_model("sampleFolder", "data"))
tmp_path = "/tmp/my_sample_data"
dbutils.fs.cp("file:" + data_path, tmp_path, True)
return (spark.read.parquet(tmp_path))

关于python - AnalysisException : Path does not exist: dbfs:/databricks/python/lib/python3. 7/site-packages/sampleFolder/data;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68202341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com