如何从F.col对象中恢复列名?

简单的问题:假设我们

import pyspark.sql.functions as F

那么我如何从pyspark.sql.column.Column对象中恢复列名’a’字符串?F.col('a').

例如,如果我们把 str(F.col('a'))我们有

enter image description here

而不是原来的列名’a’。

解决方案:

没有支持的方法可以这样做。你可以稍微黑一下,尝试一下下面的方法

from pyspark.sql.functions import lit, col
from pyspark.sql.column import Column
from py4j.protocol import Py4JError

def name(self):
    try:
        return self._jc.expr().name()
    except Py4JError:
        return None

Column.name = property(name)

这将使:

from pyspark.sql.functions import lit, col

col("a").name 
'a'
lit(1).name is None
True

本文来自投稿,不代表实战宝典立场,如若转载,请注明出处:https://www.shizhanbaodian.com/40461.html

(0)
上一篇 20小时前
下一篇 20小时前

相关推荐

发表评论

登录后才能评论