我正在尝试这个代码:
import glob
temp_path = glob.glob("/FileStorage/user/final/**/**/sample.json")[-1][5:]
sample = (spark.read.json(f"FileStorage:{temp_path}"))
但是,当我在数据块中运行这个命令时,错误消息是:
IndexError: list index out of range
我尝试打印:glob.glob("/FileStorage/user/final/**/**/sample.json")
结果是空列表。
3条答案
按热度按时间sigwle7e1#
问题是
"/FileStorage/user/final/** /**/sample.json"
可能不是您要表达的内容的正确路径名。您可能需要的是:您需要删除路径名中的空格并添加
recursive=True
。lvmkulzt2#
nwo49xxi3#
我认为问题出在“”上。
1.如果您尝试使用相对路径,则应仅使用一个“”(“/FileStorage/user/final//*/sample.json”)。
1.如果您希望搜索递归/包含隐藏文件,则需要删除第一个''后面的空格,并在调用glob时设置recursive=True或include_hidden=True(根据您的需要)。glob(例如:
glob.glob("/FileStorage/user/final/**/**/sample.json", include_hidden=True)
将返回此路径中的隐藏文件)如果recursive为true,则模式“”将匹配任何文件以及零个或多个目录、子目录和指向目录的符号链接。如果模式后面跟有os.sep或os.altsep,则文件将不匹配。
如果include_hidden为true,则“”模式将匹配隐藏目录。
参见此处的文档:https://docs.python.org/3/library/glob.html
编辑:如果此操作不起作用,请验证文件系统中的路径