如何将JSON字符串解析为Spark Scala中的不同列?

Kavya Shree

在读取镶木地板文件时,这是以下文件数据

|id |name |activegroup|

|1  |abc  |[{"groupID":"5d","role":"admin","status":"A"},{"groupID":"58","role":"admin","status":"A"}]|

每个字段的数据类型

|--id : int
|--name : String
|--activegroup : String

activegroup列是字符串爆炸功能不起作用。以下是必需的输出

|id |name |groupID|role|status|
|1  |abc  |5d     |admin|A    |
|1  |def  |58     |admin|A    |

帮助我在Spark Scala最新版本中解析以上内容

侦察兵

首先,您需要提取json模式:

  val schema = schema_of_json(lit(df.select($"activeGroup").as[String].first))

一旦获得它,就可以将您的activegroup列(即String from_json转换为json(),然后将explode其转换。

一旦该列为json,您可以使用以下命令提取其值 $"columnName.field"

  val dfresult = df.withColumn("jsonColumn", explode(
                                      from_json($"activegroup", schema)))
                   .select($"id", $"name",
                           $"jsonColumn.groupId" as "groupId", 
                           $"jsonColumn.role" as "role", 
                           $"jsonColumn.status" as "status")

如果要提取整个json并且元素名称可以,则可以使用*来完成:

val dfresult = df.withColumn("jsonColumn", explode(
                               from_json($"activegroup", schema)))
            .select($"id", $"name", $"jsonColumn.*")

结果

+---+----+-------+-----+------+
| id|name|groupId| role|status|
+---+----+-------+-----+------+
|  1| abc|     5d|admin|     A|
|  1| abc|     58|admin|     A|
+---+----+-------+-----+------+

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS:如何将JSON字符串解析为整数或浮点数以在表单编号字段中显示

来自分类Dev

如何将字符串解析为Haskell中的记录?

来自分类Dev

如何将bash脚本中的字符串如20170202解析为日期?

来自分类Dev

如何将字符串解析为 C# 中相应的枚举条目?

来自分类Dev

如何将bash中的查询字符串解析为if then语句

来自分类Dev

如何将方法中的字符串(使用 TryParse)解析为全局 int

来自分类Dev

将JSON中的大数字解析为字符串

来自分类Dev

将JSON对象解析为Java中的字符串

来自分类Dev

在PostgreSQL中,如何将json字符串解包为文本?

来自分类Dev

pyspark:如何将一串字符串类型分解为spark数据框的行和列

来自分类Dev

如何将字符串中除数字以外的字符的一部分解析为整数

来自分类Dev

如何将字符串中除数字以外的字符的一部分解析为整数

来自分类Dev

AngularJS:如何将JSON字符串解析为整数或浮点数以将其显示在表单编号字段中

来自分类Dev

如何将一列字符串从文本文件解析为枚举。C#

来自分类Dev

将JSON字符串解析为Java中的scala case类

来自分类Dev

将JSON字符串解析为Java中的scala case类

来自分类Dev

与PHP中的字符串相比,为什么'IF'条件的0返回true?以及如何将字符串解析为零?

来自分类Dev

如何将字符串中的值分隔为 postgresql 中的列?

来自分类Dev

如何使用正则表达式将Javascript中的此字符串解析为JSON

来自分类Dev

使用JSON.NET将动态JSON字符串解析为C#中的字符串

来自分类Dev

如何将JSON字符串加载到JSON列中

来自分类Dev

Gson 无法将位于 json 对象中的 json 数组字符串解析为 JsonArray

来自分类Dev

如何将以字符串形式存储的日期解析为Java中的其他格式?

来自分类Dev

将字符串解析为不同类型

来自分类Dev

将JSON Web服务中的UTF-16数据解析为PHP中的字符串

来自分类Dev

将JSON字符串中的JS数组解析为Golang映射

来自分类Dev

无法将json文件字典中的重复字符串解析为键/值对

来自分类Dev

将字符串解析为嵌套json文档中的dict

来自分类Dev

将JSON数组中的字符串元素解析为整数

Related 相关文章

  1. 1

    AngularJS:如何将JSON字符串解析为整数或浮点数以在表单编号字段中显示

  2. 2

    如何将字符串解析为Haskell中的记录?

  3. 3

    如何将bash脚本中的字符串如20170202解析为日期?

  4. 4

    如何将字符串解析为 C# 中相应的枚举条目?

  5. 5

    如何将bash中的查询字符串解析为if then语句

  6. 6

    如何将方法中的字符串(使用 TryParse)解析为全局 int

  7. 7

    将JSON中的大数字解析为字符串

  8. 8

    将JSON对象解析为Java中的字符串

  9. 9

    在PostgreSQL中,如何将json字符串解包为文本?

  10. 10

    pyspark:如何将一串字符串类型分解为spark数据框的行和列

  11. 11

    如何将字符串中除数字以外的字符的一部分解析为整数

  12. 12

    如何将字符串中除数字以外的字符的一部分解析为整数

  13. 13

    AngularJS:如何将JSON字符串解析为整数或浮点数以将其显示在表单编号字段中

  14. 14

    如何将一列字符串从文本文件解析为枚举。C#

  15. 15

    将JSON字符串解析为Java中的scala case类

  16. 16

    将JSON字符串解析为Java中的scala case类

  17. 17

    与PHP中的字符串相比,为什么'IF'条件的0返回true?以及如何将字符串解析为零?

  18. 18

    如何将字符串中的值分隔为 postgresql 中的列?

  19. 19

    如何使用正则表达式将Javascript中的此字符串解析为JSON

  20. 20

    使用JSON.NET将动态JSON字符串解析为C#中的字符串

  21. 21

    如何将JSON字符串加载到JSON列中

  22. 22

    Gson 无法将位于 json 对象中的 json 数组字符串解析为 JsonArray

  23. 23

    如何将以字符串形式存储的日期解析为Java中的其他格式?

  24. 24

    将字符串解析为不同类型

  25. 25

    将JSON Web服务中的UTF-16数据解析为PHP中的字符串

  26. 26

    将JSON字符串中的JS数组解析为Golang映射

  27. 27

    无法将json文件字典中的重复字符串解析为键/值对

  28. 28

    将字符串解析为嵌套json文档中的dict

  29. 29

    将JSON数组中的字符串元素解析为整数

热门标签

归档