Spark SQL 查询 Hive 表数据标准筛选 - Scala 代码示例
Spark SQL 查询 Hive 表数据标准筛选 - Scala 代码示例
本文将介绍如何使用 Spark SQL 和 Scala 代码,根据定义的数据标准,从 Hive 表中筛选符合标准的数据。
数据标准定义如下:
- 数据标准字段:'id'、'name'、'age'、'salary'
- 数据类型:'id'-Int、'name'-String、'age'-Int、'salary'-Double
- 数据长度:'name'-20
- 数据精度:'salary'-2
- 是否可以为空:'id'-No、'name'-No、'age'-Yes、'salary'-Yes
- 缺省值:'age'-18、'salary'-0.00
Scala 代码示例:
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._
val schema = StructType(Seq(
StructField("id", IntegerType, false),
StructField("name", StringType, false),
StructField("age", IntegerType, true),
StructField("salary", DoubleType, true)
))
val defaultValues = Map(
"age" -> 18,
"salary" -> 0.00
)
val df = spark.table("test")
.selectExpr("CAST(id AS INT)", "name", "CAST(age AS INT)", "CAST(salary AS DOUBLE)")
.filter(col("id").isNotNull && col("name").isNotNull)
.filter(length(col("name")) <= 20)
.na.fill(defaultValues)
df.show()
解释:
- 首先定义数据的结构(schema),包括字段名、数据类型和是否可以为空等信息。
- 定义缺省值(defaultValues),用于填充空值。
- 使用 Spark SQL 的 table 方法加载 Hive 表,并将数据类型转换为 schema 中定义的类型。
- 使用 filter 函数过滤出符合标准的数据,包括非空、长度不超过 20 等条件。
- 使用 na.fill 函数填充空值。
- 最后打印输出结果。
总结:
本示例展示了如何使用 Spark SQL 和 Scala 代码,根据定义的数据标准,从 Hive 表中筛选符合标准的数据,并提供代码示例和详细解释。希望本文能够帮助您理解并应用相关技术。
原文地址: https://www.cveoy.top/t/topic/oA5J 著作权归作者所有。请勿转载和采集!