Parquet 是一种高效的列式存储格式,适用于大规模数据分析。在 Spark SQL 中,Parquet 文件是一种常见的数据源,Spark 提供了对 Parquet 文件的内置支持。以下是一些关于在 Spark SQL 中使用 Parquet 文件的示例:

读取 Parquet 文件:
import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder.appName("ParquetExample").getOrCreate()

// 读取 Parquet 文件
val parquetDF = spark.read.parquet("path/to/parquet/file")

// 显示 DataFrame 中的数据
parquetDF.show()

写入 Parquet 文件:
import org.apache.spark.sql.{Row, SparkSession}
import org.apache.spark.sql.types.{StructType, StructField, StringType, IntegerType}

val spark = SparkSession.builder.appName("ParquetWriteExample").getOrCreate()

// 创建一个示例 DataFrame
val data = Seq(
  Row("John", 25),
  Row("Alice", 30)
)

val schema = StructType(List(
  StructField("name", StringType, true),
  StructField("age", IntegerType, true)
))

val df = spark.createDataFrame(spark.sparkContext.parallelize(data), schema)

// 将 DataFrame 写入 Parquet 文件
df.write.parquet("path/to/output/parquet/file")

使用 Spark SQL 查询 Parquet 文件:
import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder.appName("ParquetSQLExample").getOrCreate()

// 注册 Parquet 文件为临时视图
spark.read.parquet("path/to/parquet/file").createOrReplaceTempView("parquetTable")

// 在 Spark SQL 中执行查询
val result = spark.sql("SELECT * FROM parquetTable WHERE age > 25")

// 显示查询结果
result.show()

在上述示例中,spark.read.parquet 用于读取 Parquet 文件,write.parquet 用于将 DataFrame 写入 Parquet 文件。在 Spark SQL 中,可以通过注册 Parquet 文件为临时视图,然后使用 Spark SQL 查询语言对其进行查询。

这些示例展示了如何在 Spark SQL 中读取、写入和查询 Parquet 文件。当你的数据以 Parquet 格式存储时,可以充分利用它的列式存储优势,并通过 Spark SQL 提供的接口进行高效的数据处理。


转载请注明出处:http://www.zyzy.cn/article/detail/9369/Spark