【发布时间】:2020-05-24 15:15:54
【问题描述】:
我正在我的本地机器上使用 pycharm 编写一些代码。 执行在databricks集群上完成,而数据存储在azure datalake上。
基本上,我需要列出 azure datalake 目录中的文件,然后对文件应用一些读取逻辑,为此我使用以下代码
sc = spark.sparkContext
hadoop = sc._jvm.org.apache.hadoop
fs = hadoop.fs.FileSystem
conf = hadoop.conf.Configuration()
path = hadoop.fs.Path('adl://<Account>.azuredatalakestore.net/<path>')
for f in fs.get(conf).listStatus(path):
print(f.getPath(), f.getLen())
上述代码在 databricks 笔记本上运行良好,但是当我尝试使用 databricks-connect 通过 pycharm 运行相同的代码时,出现以下错误。
"Wrong FS expected: file:///....."
经过一番挖掘后发现,代码正在我的本地驱动器中查找“路径”。 我对 python 库(os、pathlib)也有类似的问题
我在集群上运行其他代码没有问题。
在弄清楚如何运行它以便搜索数据湖而不是我的本地计算机时需要帮助。
此外,由于某些限制,不能选择 azure-datalake-store 客户端。
【问题讨论】:
-
你能试试
dbutils.fs.ls("SOMEPATH")吗?
标签: azure pycharm azure-databricks databricks-connect