df = spark.read.json("dbfs:/mnt/evbhaent2blobs", multiLine=True)
df2 = df.select(F.col('body').cast("Struct").getItem('CustomerType').alias('CustomerType'))
显示(df)
我的df是
我猜测您的数据框有一个“body”列,它是一个 json 字符串,您想解析 json 并从中提取一个元素。
首先,您需要定义或提取 json 模式。然后解析 json 字符串并将其元素提取为列。从提取的列中,您可以选择所需的列。
json_schema = spark.read.json(df.rdd.map(lambda row: row.body)).schema
df2 = df.withColumn('body_json', F.from_json(F.col('body'), json_schema))\
.select("body_json.*").select('CustomerType')
display(df2)