0

我有带有“Blob 容器”和“文件共享”的 ADLS Gen2 Datalake。我已经在我的 Databricks 笔记本中安装了 Blob 容器,因此我可以阅读我的 Databricks 笔记本中的所有内容。

我在“文件共享”中也有一些文件,但我无法使用 pyspark 通过 Databricks 将这些文件读入数据框。

我已经为文件共享创建了一个访问签名,并且我还获得了共享中的一个文件的 url。该网址通过邮递员工作正常。我可以使用 url 下载该文件。

示例网址如下所示:

https://somedatalakename.file.core.windows.net/file_share_name/Data_20200330_1030.csv?sv=yyyy-mm-dd&si=somename&sr=s&sig=somerandomsignature%3D

如何使用pyspark通过databricks将该文件共享中的相同csv读取到数据帧中?

我也试过

from pyspark import SparkFiles
spark.sparkContext.addFile(uri)
call_df = spark.read.format("csv").option("header", "true").load("file://" + SparkFiles.get("Data_" + date_str + "_1030.csv"))

我收到以下错误:

org.apache.spark.sql.AnalysisException: Path does not exist: file:/local_disk0/spark-ce42ed1b-5d82-4559-9000-d1bf3621539e/userFiles-eaf0fd36-68aa-409e-8610-a7909635b006/Data_20200330_1030.csv

请给我一些关于如何解决这个问题的指示。谢谢。

4

1 回答 1

0

您的加载语法问题。file:在 Databricks 中不起作用,因此您需要将其替换为dbfsie Databricks 文件系统。加载文件的命令:

spark.read.format("csv").option("header","true").load(f"dbfs:/path/to/your/directory/FileName.csv")
于 2020-03-30T14:26:02.827 回答