将 pyspark DataFrame 列的每一行转换为 Json 字符串
Convert each row of pyspark DataFrame column to a Json string
如何基于 pyspark 数据框的其他列创建具有 json 结构的列。
例如,我想在 pyspark dataframe 中实现以下内容。我可以在 pandas dataframe 上执行此操作,如下所示,但是我如何在 pyspark dataframe
上执行相同的操作
df = {'Address': ['abc', 'dvf', 'bgh'], 'zip': [34567, 12345, 78905], 'state':['VA', 'TN', 'MA']}
df = pd.DataFrame(df, columns = ['Address', 'zip', 'state'])
lst = ['Address', 'zip']
df['new_col'] = df[lst].apply(lambda x: x.to_json(), axis = 1)
预期输出
假设你的 pyspark dataframe 被命名为 df
,使用 struct
函数构造一个结构,然后使用 to_json
函数将其转换为 json字符串。
import pyspark.sql.functions as F
....
lst = ['Address', 'zip']
df = df.withColumn('new_col', F.to_json(F.struct(*[F.col(c) for c in lst])))
df.show(truncate=False)
如何基于 pyspark 数据框的其他列创建具有 json 结构的列。
例如,我想在 pyspark dataframe 中实现以下内容。我可以在 pandas dataframe 上执行此操作,如下所示,但是我如何在 pyspark dataframe
上执行相同的操作df = {'Address': ['abc', 'dvf', 'bgh'], 'zip': [34567, 12345, 78905], 'state':['VA', 'TN', 'MA']}
df = pd.DataFrame(df, columns = ['Address', 'zip', 'state'])
lst = ['Address', 'zip']
df['new_col'] = df[lst].apply(lambda x: x.to_json(), axis = 1)
预期输出
假设你的 pyspark dataframe 被命名为 df
,使用 struct
函数构造一个结构,然后使用 to_json
函数将其转换为 json字符串。
import pyspark.sql.functions as F
....
lst = ['Address', 'zip']
df = df.withColumn('new_col', F.to_json(F.struct(*[F.col(c) for c in lst])))
df.show(truncate=False)