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()

解释:

  1. 首先定义数据的结构(schema),包括字段名、数据类型和是否可以为空等信息。
  2. 定义缺省值(defaultValues),用于填充空值。
  3. 使用 Spark SQL 的 table 方法加载 Hive 表,并将数据类型转换为 schema 中定义的类型。
  4. 使用 filter 函数过滤出符合标准的数据,包括非空、长度不超过 20 等条件。
  5. 使用 na.fill 函数填充空值。
  6. 最后打印输出结果。

总结:

本示例展示了如何使用 Spark SQL 和 Scala 代码,根据定义的数据标准,从 Hive 表中筛选符合标准的数据,并提供代码示例和详细解释。希望本文能够帮助您理解并应用相关技术。

Spark SQL 查询 Hive 表数据标准筛选 - Scala 代码示例

原文地址: https://www.cveoy.top/t/topic/oA5J 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录