scala - 如何使用通过旋转列生成的从 json 值生成的模式创建新的数据框
问题描述
我有一个具有以下架构的数据框。
root
|-- id: string (nullable = true)
|-- type: string (nullable = true)
|-- key: string (nullable = true)
|-- value: string (nullable = true)
它首先以“值”列为中心。
val pivot_df = df.groupBy("id","key").pivot("type").agg(first("value"))
“value”列的数据可能包含嵌套的 json 。所以早些时候我正在转换整个“价值”列以获得所需的架构。
val schema = spark.read.json(df.select("value").as[String]).schema
val res_df = df.select($"id",$"type",$"key",from_json($"value",schema).as("s")).select("id","type","key","s.*")
但现在我需要先将它放在“值”列数据上,然后从所有新生成的列的 json 中读取。有人可以建议应该应用哪些代码更改?
解决方案
推荐阅读
- wordpress - 构建自定义 Wordpress 主题的最通用方法是什么?
- laravel - October CMS extend System/Models/File
- android - My Recyclerview is not showing anything
- python - python dict实现java HigherKey()函数找值?
- tensorflow - Can I use real probability distributions as labels for tf.nn.softmax_cross_entropy_with_logits?
- wordpress - 在 WordPress 注册表单中添加自定义按钮
- python - 我不知道为什么会出现此错误或索引超出范围。我在 jupyter notebook 中使用 Python 3.0
- download - 下载 (TIFF) 而不是在 Internet Explorer 中默认打开
- firebase - Firebase Hosting How to put multiple links in Access Control Allow Origin Header
- php - 从浏览器运行 phar 文件