-1

df = spark.read.json("dbfs:/mnt/evbhaent2blobs", multiLine=True)

df2 = df.select(F.col('body').cast("Struct").getItem('CustomerType').alias('CustomerType'))

显示(df)

我的df是

我的输出

4

1 回答 1

0

我猜测您的数据框有一个“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)
于 2018-12-17T01:56:32.317 回答