ApacheSpark3.0中的from_json返回null
创始人
2024-09-06 11:30:21
0

在从 JSON 字符串中解析某个字段时,from_json 函数在 Apache Spark 3.0 中会返回 null 值,而不是期望的默认值。

解决这个问题的方法是,在 from_json 函数中指定默认值。具体来说,将 from_json 函数的第二个参数作为默认值传递给它。例如,假设我们想要从名为 "data" 的 JSON 字符串中提取名为 "foo" 的字段,并将缺失的值替换为一个默认值 0:

from pyspark.sql.functions import from_json
from pyspark.sql.types import StructType, StructField, StringType, IntegerType

schema = StructType([StructField("foo", IntegerType(), True)])

df = spark.createDataFrame([(1, '{"data": {"foo": 42}}'), (2, '{"data": {}}')], ["id", "json_data"])

df = df.withColumn("parsed_json", from_json(df.json_data, schema).getField("foo"))
df = df.fillna({"parsed_json": 0})

在执行上面的代码后,df 的输出将如下所示:

+---+----------------------+------------+
|id |json_data             |parsed_json |
+---+----------------------+------------+
|1  |{"data": {"foo": 42}} |42          |
|2  |{"data": {}}          |0           |
+---+----------------------+------------+

这样我们就能够在解析 JSON 数据时,将缺失的值替换为默认值了。

相关内容

热门资讯

wpk真的有外挂!微扑克机器人... wpk真的有外挂!微扑克机器人代打俱乐部,微扑克ai辅助工具,科技教程(有挂总结)1)微扑克ai辅助...
透视线上(wepoke)透明挂... 透视线上(wepoke)透明挂辅助神器(wepoke计算辅助)起初真的有挂(详细透视辅助教程)是一款...
we辅助poker德之星!微扑... 自定义aapoker辅助工具存在系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅...
透视辅助(wepokE)透视辅... 透视辅助(wepokE)透视辅助技巧(wepokeai代打)竟然是真的有挂(详细透视AI教程);《W...
智星德州菠萝偷偷看牌功能!云扑... 智星德州菠萝偷偷看牌功能!云扑克外挂,微扑克软件,安装教程(有挂了解)是一款可以让一直输的玩家,快速...
辅助透视(wepokE)外挂透... 辅助透视(wepokE)外挂透明挂辅助工具(wepoke插件)先前有挂(详细透视详细教程)科技教程也...
wepoke是真的有挂!红龙扑... wepoke是真的有挂!红龙扑克会作假吗,wopoker分析器,科技教程(有挂教程)是一款可以让一直...
透视辅助(wePokE)外挂透... 透视辅助(wePokE)外挂透明挂辅助器(wepower辅助器)一直是真的有挂(详细透视辅助教程);...
微扑克游戏辅助器!wepoke... 微扑克游戏辅助器!wepoke辅助机器人,wpk微扑克真的有助辅,AI教程(有挂了解)1、这是跨平台...
透视工具(wEpoke)透明挂... 透视工具(wEpoke)透明挂辅助软件(aapoker透明挂)竟然存在有挂(详细透视科技教程);原来...