spark dataFrame Row 对象转换json对象

网上查找了一堆没有解决

最终实现:

  from pyspark.sql import Row

查看Row class 源码:


  ...
 def __new__(self, *args, **kwargs):
        if args and kwargs:
            raise ValueError("Can not use both args "
                             "and kwargs to create Row")
        if kwargs:
            # create row objects
            names = sorted(kwargs.keys())
            row = tuple.__new__(self, [kwargs[n] for n in names])
            row.__fields__ = names
            row.__from_dict__ = True
            return row

        else:
            # create row class or objects
            return tuple.__new__(self, args)
def asDict(self, recursive=False):
        """
        Return as an dict

        :param recursive: turns the nested Row as dict (default: False).

        >>> Row(name="Alice", age=11).asDict() == {'name': 'Alice', 'age': 11}
        True
        >>> row = Row(key=1, value=Row(name='a', age=2))
        >>> row.asDict() == {'key': 1, 'value': Row(age=2, name='a')}
        True
        >>> row.asDict(True) == {'key': 1, 'value': {'name': 'a', 'age': 2}}
        True
        """
        if not hasattr(self, "__fields__"):
            raise TypeError("Cannot convert a Row class into dict")

        if recursive:
            def conv(obj):
                if isinstance(obj, Row):
                    return obj.asDict(True)
                elif isinstance(obj, list):
                    return [conv(o) for o in obj]
                elif isinstance(obj, dict):
                    return dict((k, conv(v)) for k, v in obj.items())
                else:
                    return obj
            return dict(zip(self.__fields__, (conv(o) for o in self)))
        else:
            return dict(zip(self.__fields__, self))
...

直接使用 asDict() 这个方法即可

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,798评论 1 32
  • 一. Java基础部分.................................................
    wy_sure阅读 4,087评论 0 11
  • 二 站在偌大的道观门口 师父我能进去吗 你已是我门下的弟子 这白云观便是你的家 自然可以随进随出 离诺带你师妹在观...
    YuXiangssg阅读 504评论 0 0
  • 秋风 轻轻 吹到 我的棉袍子 夏天 偷偷 溜去 没留下声音 日子 飞跑 记挂 那缤纷景象 红色 围脖 温暖 我的一...
    许二可阅读 456评论 1 2
  • 看过马良《坦白书》,序言里有一段话是这样的,我的身体里住过我一生至今每个冬天的雪,住过大海,住过这世间所有流浪的...
    洛疏的时光阅读 812评论 0 2

友情链接更多精彩内容