У меня возникает эта ошибка при вставке статистики в таблицу:
org. apache .spark. sql .catalyst.parser.ParseException
df_tables = spark.sql("show tables from default");
table_list = df_tables.rdd.map(lambda x : x[1]).collect()
for table_name in table_list:
df = spark.sql("select * from " + table_name +" ")
col_list = df.columns
for i in col_list:
col_df = spark.sql("select "+ i +" from "+ table_name +" ")
Чтобы вычислить статистику таблицы:
col_total_count = col_df.count()
col_distinct_count = col_df.select(i).distinct().count()
col_duplicate_count = col_df.groupBy(i).count().where("count > 1").count()
col_null = col_df.where(col_df[i].isNull()).count()
if col_total_count != 0:
null_prcnt = ((col_null/col_total_count)* 100)
else:
null_prcnt = 0
if (col_df.dtypes[0][1] == "int"):
col_avg = col_df.select(avg(i)).count()
max_value = col_df.groupBy().max(i).rdd.map(lambda x : x[0]).collect()[0]
min_value = col_df.groupBy().min(i).rdd.map(lambda x : x[0]).collect()[0]
Вставить запрос, чтобы вставить все значения в таблицу, получая ошибку при выполнении запроса ниже:
query = "insert into Practise.dummyT " + table_name + ", " + str(i) + ", " + str(col_total_count) + ", " + str(col_distinct_count) + ", " + str(col_duplicate_count) + ", " + str(null_prcnt) + "," + str(col_avg) + ", " + str(max_value) + ", " + str(min_value) + ""
spark.sql(query);