Databricks JSON column



在Databricks中,我在一列中有一个Json数据。我想读取每个记录中的JSON数据,查找JSON列是否存在,如果存在,我想更改值并在同一记录列中更新它。有人能帮忙吗?

检查数字列是否存在如果存在,则更新号码"0";XXXXXX";

JSON:在此处输入图像描述

在此处输入图像描述

您可以使用pyspark-sql类型通过提及模式将这些json转换为dict对象来实现这一点。

from pyspark.sql.functions import from_json
phoneNumberSchema = StructType([
StructField('type', StringType(), True),
StructField('number',StringType(), True),
])
schema = StructType([
StructField('firstName', StringType(), True),
StructField('lastName',StringType(), True),
StructField('gender', StringType(), True),
StructField('age', StringType(), True),
StructField('address', MapType(StringType(),StringType()), True),
StructField('phoneNumbers', ArrayType(phoneNumberSchema), True),
])
df = df.withColumn("JSON_payload", from_json("json_object", schema))

regexp_replace可能是一个解决方案,如果列是字符串并且json的模式一致地进行

最新更新