Databricks中Python/PySpark提取字典路径内表名求助
提取路径中的表名解决方案
你已经通过Ancestor['ancestorPath']获取到完整路径,以下是几种可靠的提取表名xpd_opportunitystatushistory的方法:
方法一:按斜杠分割取对应索引
路径按斜杠分层,表名位于dbo之后的层级,分割后直接取对应元素:
path = Ancestor['ancestorPath'] # 分割路径并过滤空字符串(避免首尾斜杠产生无效元素) path_segments = [seg for seg in path.split('/') if seg] # 表名是分割后列表的第6个元素(索引从0开始计数) table_name = path_segments[6] print(table_name) # 输出: xpd_opportunitystatushistory
方法二:基于dbo/定位截取
如果表名固定在dbo/之后、下一个斜杠之前,可通过字符串定位截取:
path = Ancestor['ancestorPath'] # 定位'dbo/'的结束位置 start_pos = path.find('dbo/') + len('dbo/') # 定位start_pos之后第一个斜杠的位置 end_pos = path.find('/', start_pos) table_name = path[start_pos:end_pos] print(table_name) # 输出: xpd_opportunitystatushistory
方法三:使用pathlib解析路径(Python 3.4+)
借助标准库pathlib的路径解析能力,更优雅地处理层级:
from pathlib import Path path_obj = Path(Ancestor['ancestorPath']) # path_obj.parts 返回路径的所有层级元组,第7个元素为目标表名 table_name = path_obj.parts[7] print(table_name) # 输出: xpd_opportunitystatushistory
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

