返回任何JSON的pyspark UDF的返回类型

2024-04-27 04:07:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pyspark UDF,它从源代码读取数据并将其存储到spark dataframe中的一列中。如何从udf返回无模式的json

import json
from pyspark.sql import functions as sf
from pyspark.sql import types as st

df.printSchema()

root
 |
 |- filename: string (nullable = false)


def read_data(filename):
    # read json file
    return json.loads(output)

read_data_schema = st.StringType()

read_data_udf = sf.udf(read_data, read_data_schema)

df = df.withColumn('output', read_data_udf('filename'))

df.printSchema()

root
 |
 |- filename: string (nullable = false)
 |- output: string (nullable = false)

这里,UDF返回的是字符串而不是JSON。如何从udf返回json(可以在具有不同json模式的不同文件上重用)


Tags: fromimportjsonfalsedfreadoutputdata