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

sqxo8psd  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(332)

简单的问题:假设我们

import pyspark.sql.functions as F

那么如何从pyspark.sql.column.column对象恢复列名字符串“a” F.col('a') .
例如,如果我们把 str(F.col('a')) ,我们有

而不是原来的列名“a”。

kb5ga3dv

kb5ga3dv1#

不支持这样做。你可以稍微修改一下,然后围绕这些线做些尝试

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

相关问题