保存到配置单元表(orc)时获取计数

wsewodh2  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(441)

我想问您,是否有可能在不降低性能的情况下使用saveastable()获得我插入到配置单元表中的Dataframe计数?
老实说,我想报告日志计数或最好是得到计数前插入后插入,因为这将是真正有用的信息在splunk Jmeter 板,但我不想添加配置单元查询,这可能会损害性能相当明显,因为我有超过100个转换。
提前感谢您的帮助!

cotxawn7

cotxawn71#

set hive.stats.autogather=false; -对于新创建的表和/或分区(通过insert overwrite命令填充),默认情况下会自动计算统计信息。用户必须显式地将布尔变量hive.stats.autogather设置为false,这样统计信息就不会自动计算并存储到hive metastore中。
表级统计,

spark.sql("ANALYZE TABLE tableName COMPUTE STATISTICS").show()

结果是

parameters:{totalSize=0, numRows=0, rawDataSize=0...```

表分区级统计:

spark.sql("ANALYZE TABLE Table1 PARTITION(ds, hr) COMPUTE STATISTICS").show()

注意:当用户发出该命令时,他可以指定分区规格,也可以不指定分区规格。如果用户没有指定任何分区规格,则会收集表以及所有分区(如果有的话)的统计信息。
表列级统计:

spark.sql("ANALYZE TABLE Table1 PARTITION(ds, hr) COMPUTE STATISTICS FOR COLUMNS").show()

您可以从以下网站获得更多详细信息:https://cwiki.apache.org/confluence/display/hive/statsdev#statsdev-现有表%e2%80%934

相关问题