分析代码package analyse import org.apache.spark.sql.SparkSession object BasicAnaylse { val spark=SparkSession.builder() .appName("BasicAnalyse") .master("local[*]") .enableHiveSupport() .getOrCreate() spark.sparkContext.setLogLevel("WARN") def main(args: Array[String]): Unit = { val tableName = Array("media_index","mediamatch_userevent","mediamatch_usermsg","mmconsume_billevents","order_index") var i = ""; for ( i<-tableName){ Analyse(i) } } def Analyse(tableName:String):Unit={ val data = spark.table(tableName = "user_project."+tableName) println(tableName+"表数据:"+data.count()) println(tableName+"表字段为空数:"+(data.count()-data.select("phone_no").na.drop().count)) } }
时间: 2024-04-28 10:27:00 浏览: 134
dsdv.rar_DSDV改进_DSDV无穷计数_Destination_analyse.awk de DSDV_dsdv算法
根据你提供的代码,我们可以看出该代码的功能是对指定的5个表进行数据分析,输出表数据的总量和字段为空的数量。具体分析如下:
1. 导入了SparkSession类,用于连接Spark集群。
2. 创建了一个BasicAnalyse对象,并定义了SparkSession对象spark,用于连接Spark集群和设置日志级别为WARN。
3. 在main函数中,定义了一个包含5个表名的数组tableName,并使用for循环遍历该数组,依次调用Analyse函数进行分析。
4. Analyse函数中,首先通过SparkSession对象spark的table方法获取指定表名的数据。
5. 然后使用count方法计算数据总量,并使用na.drop().count方法计算字段为空的数量。
6. 最后输出表数据的总量和字段为空的数量。
需要注意的是,该代码使用了Spark SQL来操作数据,因此需要确保Spark集群已经启动并且可以访问到指定的表。同时,该代码中使用了变量i来遍历表名数组tableName,可以使用更加直观的方式来定义变量名。例如,可以使用tableName.foreach(tableName => Analyse(tableName))来遍历表名数组并调用Analyse函数进行分析。
阅读全文