【发布时间】:2020-01-05 06:46:39
【问题描述】:
我试图遍历一个文件夹并使用 Pyspark 在 DataBricks 中获取文件的名称和这些文件的路径。 突然想到如果我们可以将文件名作为变量并将路径分配给相应的名为变量的文件。 我们可以使用 dbutils 来创建小部件并将文件名分配为参数,以使事情变得更容易。 因此,在这个过程中,我一直到获得文件和文件名的路径。 但我无法弄清楚变量的创建和在各自的文件名变量中分配各自文件的路径 这是代码:
import pandas as pd
import os
list1 =[]
list2 =[]
directory='/dbfs/FileStore/tables'
dir='/FileStore/tables'
for filename in os.listdir(directory):
if filename.endswith(".csv") or filename.endswith(".txt"):
file_path=os.path.join(dir, filename)
print(file_path)
print(filename)
list1.append(file_path)
list2.append(filename)
提前致谢
【问题讨论】:
-
stackoverflow.com/questions/19122345/… 的可能重复项。但真正的问题是为什么不使用字典来代替
filename作为键和file_path作为值? -
假设我在一个文件夹中有 100 个文件,我只想为单个文件创建一个 DataFrame,如果我要在字典中创建变量,我必须记住字典中的键,如果我获得了带有文件名和分配给它的文件路径的变量,我可以传递变量名并毫不费力地创建整个数据框
-
不确定您所说的...“记住字典中的键...”是什么意思,但是我认为分配变量也需要内存开销。字典是此类操作的最佳数据结构 - 它紧凑、便携且高效。
-
好的,谢谢你的建议,我会检查结果并在这里更新,关于利弊
标签: python pyspark databricks directory-structure azure-databricks