读取 JSON 数据:
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder.appName("JSONExample").getOrCreate()
// 读取 JSON 文件
val jsonDF = spark.read.json("path/to/json/file")
// 显示 DataFrame 中的数据
jsonDF.show()
写入 JSON 数据:
import org.apache.spark.sql.{Row, SparkSession}
import org.apache.spark.sql.types.{StructType, StructField, StringType, IntegerType}
val spark = SparkSession.builder.appName("JSONWriteExample").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 写入 JSON 文件
df.write.json("path/to/output/json/file")
使用 Spark SQL 查询 JSON 数据:
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder.appName("JSONSQLExample").getOrCreate()
// 注册 JSON 文件为临时视图
spark.read.json("path/to/json/file").createOrReplaceTempView("jsonTable")
// 在 Spark SQL 中执行查询
val result = spark.sql("SELECT * FROM jsonTable WHERE age > 25")
// 显示查询结果
result.show()
在这些示例中,spark.read.json 用于读取 JSON 文件,write.json 用于将 DataFrame 写入 JSON 文件。在 Spark SQL 中,可以通过注册 JSON 文件为临时视图,然后使用 Spark SQL 查询语言对其进行查询。
请确保你的 JSON 数据符合 Spark SQL 可以解析的格式,并且数据的结构与你的 DataFrame 或表的结构相匹配。在读取 JSON 数据时,Spark SQL 会尝试自动推断数据的模式,但在某些情况下,你可能需要明确指定模式。
这些示例展示了如何在 Spark SQL 中读取、写入和查询 JSON 数据集。当你的数据以 JSON 格式存储时,Spark SQL 提供了方便的工具来进行数据处理和分析。
转载请注明出处:http://www.zyzy.cn/article/detail/9370/Spark