sparksql中的from_json函数
时间: 2024-05-10 22:17:30 浏览: 24
Spark SQL中的from_json函数是用于将JSON格式的字符串转换为结构化的数据。它的语法如下:
```
from_json(jsonStr: Column, schema: StructType): Column
```
其中,jsonStr是一个包含JSON格式的字符串的列,schema是一个StructType类型的参数,用于定义JSON字符串的结构。from_json函数返回一个新列,包含解析后的结构化数据。
例如,假设有一个包含JSON格式字符串的DataFrame,如下所示:
```
+--------------------+
| jsonString|
+--------------------+
|{"id":1, "name":"A"}|
|{"id":2, "name":"B"}|
+--------------------+
```
我们可以使用from_json函数将jsonString列转换为结构化数据,如下所示:
```
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._
val schema = StructType(Seq(
StructField("id", IntegerType),
StructField("name", StringType)
))
val df2 = df.select(from_json($"jsonString", schema).as("data"))
.selectExpr("data.id", "data.name")
df2.show()
```
执行结果:
```
+---+----+
| id|name|
+---+----+
| 1| A|
| 2| B|
+---+----+
```
在上面的示例中,我们首先定义了一个StructType类型的schema,用于指定JSON字符串的结构。然后使用from_json函数将jsonString列转换为结构化数据,并将结果保存在名为"data"的新列中。最后,我们选择"data"列中的字段并显示结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)