Pyspark-获取给定视图的所有表的列表

时间:2019-10-04 15:26:16

标签: azure pyspark databricks

我们在其他一些视图之上创建了一些视图,依此类推。我想知道查找这些视图消耗的所有表及其路径。但是,无法弄清楚该怎么做。

最初,我想解析Query Plan并获取此信息。但是,当我解析该计划时,我无法获得完整的路径。

plan = spark.sql("explain extended select * from database.table")

计划类型为pyspark.sql.dataframe.DataFrame = [plan: string]

然后我将其转换为字符串并解析位置。但是,位置不包含整个路径。

plan_str = df.select("plan").rdd.map(lambda r:  r[0]).collect()[0]
loc = re.search(r'InMemoryFileIndex\[(.*)\]', plan_str, re.IGNORECASE)

if loc:
    print(loc.group(1))

输出

  

adl://abc.azuredatalakestore.net/informationmart/database...,PartitionFilters:[],PushedFilters:

并且随后不返回任何内容,仅在控制台上打印。

plan = spark.sql("select * from database.table").explain(true) 

0 个答案:

没有答案