Попытка получить счет из всех таблиц в базе данных Hive.У меня есть решение, это эффективно?Есть ли лучшие способы сделать то же самое?
from pyspark.sql import functions as F
ds = 'dbname'
full_df = None
try:
for row in spark.sql("show tables in %s" %ds).collect():
py_df = (spark.table("%s.%s" % (ds,row.tableName))
.select(spark.table("%s.%s" % (ds,row.tableName)).columns[0])
.select
(
F.lit(row.tableName).alias('table'),
F.count('*').alias('num_records')
)
)
if full_df is None:
full_df = py_df
else:
full_df = full_df.unionAll(py_df)
except Exception as e:
print(str(e))
full_df.orderBy(F.col('num_records').desc()).show(truncate =False)
![enter image description here](https://i.stack.imgur.com/orOJD.png)
Любые рекомендации?