如何将spark数据帧列名和行数据转换为json数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将spark数据帧列名和行数据转换为json数据相关的知识,希望对你有一定的参考价值。

我有一个pyspark数据帧

 spark = SparkSession
        .builder
        .appName("NPS_TF")
        .getOrCreate()
 df2 = spark.createDataFrame([
        ("unknown", 1,2,3)
    ], ["Assign", "xs[0]","xs[1]","xs[2]"])

 df2.limit(1).show()

如何将部分数据帧列名称和第一行数据转换为此json格式:

{"fields": ["xs[0]", "xs[1]", "xs[2]"], "values": [[1,2,3]]}


答案

检查此解决方案

df2 = spark.createDataFrame([("unknown", 1,2,3)], ["Assign", "xs[0]","xs[1]","xs[2]"])
fields = ['xs[0]', 'xs[1]', 'xs[2]']
values = df2.rdd.map(lambda p: [p[field] for field in fields]).collect()

json_obj = {
    'fields': fields,
    'values': values
}

以上是关于如何将spark数据帧列名和行数据转换为json数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 pyspark 将 spark 数据帧转换为嵌套 JSON

将spark结构化流数据帧转换为JSON

通过将键作为列将 json 字典转换为 spark 数据帧

将熊猫数据框列表转换为 json

将 RDD 中的 JSON 行转换为 Apache Spark 中的数据帧

如何在火花上将json字符串转换为数据帧