相关文章推荐
飘逸的冰淇淋  ·  transformignorepattern ...·  2 年前    · 

spark sql json解析

Spark SQL 支持将 JSON 数据解析为表中的行。你可以使用 spark.read.json 函数读取 JSON 数据并创建为 DataFrame 。例如,假设你有如下的 JSON 文件:

{"name":"Alice", "age":25, "city":"New York"}
{"name":"Bob", "age":30, "city":"Los Angeles"}

你可以这样来读取这个 JSON 文件并解析:

df = spark.read.json("/path/to/file.json")
df.show()

这将输出下面的内容:

+---+--------+---------+
|age|    city|    name|
+---+--------+---------+
| 25|New York|   Alice|
| 30|Los Angeles|    Bob|
+---+--------+---------+

你也可以使用 SQL 语句来查询 JSON 数据。例如,你可以将 JSON 数据注册成临时视图,然后使用 SELECT 语句来查询数据:

df.createOrReplaceTempView("people")
spark.sql("SELECT * FROM people WHERE age > 26").show()

这将输出下面的内容:

+---+--------+----+
|age|    city|name|
+---+--------+----+
| 30|Los Angeles|Bob|
+---+--------+----+

如果你的 JSON 数据有复杂的嵌套结构,你可以使用 get_json_object 函数来获取特定的值:

df.select(
    get_json_object(df.json, "$.name").alias("name"),
    get_json_object(df.json, "$.age").alias("age"),
).show()

这将输出下面的内容:

+---------+---+
|     name|age|
+---------+---+
|   Alice| 25|
|      Bob| 30|
+---------+---+

希望这能帮到你。

  •