scala - Spark Scala:将 StructType 转换为字符串
问题描述
我将json读为:
val df = spark.read.json(rdd)
我阅读了来自不同主题的消息,因此我无法指定显式架构。一些消息包含带有嵌套 json 的字段,它们被转换为 StructType。例如:
{"name": "John", "son": {"name":"Tom"}}
如何将其转换为字符串?我需要将“儿子”字段读取为字符串:
"{\"name\":\"Tom\"}"
使用cast
方法或 sql 函数失败:
df.selectExpr("cast(son as string)")
错误:
java.lang.String is not a valid external type for schema of struct<name:string>
解决方案
你可以很容易地做到这一点to_json
,返回一个字符串
df.select(to_json(df("son")))
推荐阅读
- c# - 未等待睡眠线程的等待异步任务
- android-studio - AndroidStudio 中的项目在更新后将无法构建
- google-apps-script - 用于填充电子表格列的一维数组
- python - Tensorflow Estimator - 训练数据的高评估值
- java - 我的项目将突然冻结,我无法阻止冻结的发生
- apache-spark - 将带有 JSON 对象数组的 Spark 数据框列转换为多行
- c# - 从 C# 项目中连接到托管在服务器上的数据库
- java - 如何将基于 Spring Mvc maven 的 Java 项目转换为应用程序
- date - 将字符日期转换为格式化日期
- wordpress - 无法调整 Wordpress 插件的编辑器高度