package anaylse 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) } // val mediamatch_userevent = spark.table("user_project.mediamatch_userevent") // mediamatch_userevent.show(false) } def Analyse(tableName:String): Unit ={ val data = spark.table("user_project."+tableName) print(tableName+"表数据:"+data.count()) print(tableName+"表phone_no字段为空数:"+(data.count()-data.select("phone_no").na.drop().count)) } }
时间: 2024-04-28 16:26:12 浏览: 13
这段代码是一个基本的数据分析程序,使用 Apache Spark SQL 的 SparkSession 类来创建一个 Spark 应用程序。它的主要作用是对指定的表进行分析,包括查找重复记录表和空值记录数。其中重要的部分是:
- `appName("BasicAnalyse")`:设置应用程序的名称为 "BasicAnalyse"。
- `master("local[*]")`:设置应用程序在本地运行,使用所有可用的 CPU 核心。
- `enableHiveSupport()`:启用 Hive 支持,可以在 Spark SQL 中访问 Hive 表。
- `getOrCreate()`:获取或创建 SparkSession 实例。
- `spark.table("user_project."+tableName)`:通过 SparkSession 实例获取指定表的 DataFrame。
在 `main` 函数中,使用一个循环语句遍历指定的表,并调用 `Analyse` 函数对每个表进行分析。在 `Analyse` 函数中,使用 `count()` 函数获取表的总记录数,使用 `na.drop()` 函数删除空值记录,计算出表中 `phone_no` 字段的空值记录数。
相关问题
object spark is not a member of package org.apache import org.apache.spark.{SparkConf, SparkContext}
这个错误通常是由于缺少Spark依赖或者版本不兼容导致的。你需要确保你的项目中已经正确引入了Spark依赖,并且版本与你的代码兼容。另外,你也可以尝试使用SparkSession来代替SparkContext,因为SparkSession是Spark 2.0之后的推荐使用方式。你可以使用以下代码来创建一个SparkSession:
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder()
.appName("YourAppName")
.master("local[*]") // 这里的[*]表示使用所有可用的CPU核心
.getOrCreate()
import org.apache.hudi.DataSourceWriteOptions._ import org.apache.hudi.QuickstartUtils.getQuickstartWriteConfigs import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}
这段代码主要是导入了 Hudi 相关的类和方法,并创建了一个 SparkSession 对象。其中:
- `org.apache.hudi.DataSourceWriteOptions._` 导入了所有 Hudi 写入数据时需要用到的选项;
- `org.apache.hudi.QuickstartUtils.getQuickstartWriteConfigs` 是 Hudi 提供的一个快速启动工具类,用于获取 Hudi 写入时需要的配置信息;
- `org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}` 导入了 Spark SQL 相关的类,包括 DataFrame、SaveMode 和 SparkSession。
完整代码可能是这样的:
```scala
import org.apache.hudi.DataSourceWriteOptions._
import org.apache.hudi.QuickstartUtils.getQuickstartWriteConfigs
import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}
object HudiDemo {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("HudiDemo")
.master("local[*]")
.getOrCreate()
val data: DataFrame = spark.read.format("csv")
.option("header", "true")
.load("/path/to/csv")
val hudiOptions = getQuickstartWriteConfigs
data.write
.format("org.apache.hudi")
.options(hudiOptions)
.mode(SaveMode.Overwrite)
.save(hudiOptions.get(INSERT_OPERATION_OPT_KEY).get)
}
}
```
这段代码将读取一个 CSV 文件并写入 Hudi 表中。其中,`getQuickstartWriteConfigs` 方法会返回一些默认的 Hudi 写入配置信息,你可以根据实际需求修改这些配置。最后,使用 `DataFrame.write` 将数据写入 Hudi 表中。