首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyspark/Python方法

Pyspark/Python方法
EN

Stack Overflow用户
提问于 2019-11-27 00:35:51
回答 1查看 72关注 0票数 0

我正在尝试为我的Pyspark转换扩展Optimus用例。

然而,我偶然发现下面的.add_columns()方法没有继承我的Pyspark dataframe方法,而.add_columns_2()方法继承了集成开发环境级别的方法。

为什么我不能在赋值后列出与Pyspark dataframe相关的方法?

代码语言:javascript
复制
class OptExtender:
    def __init__(self, df):
        self._df = df

    def add_columns(self, column):
        self._df ## ==> This shows the methods related to pyspark dataframe methods 
        self._df = self._df.withColumn(column, lit('Hello'))
        self._df ## ==> This doesn't list the Pyspark dataframe methods 
        return self

    def add_columns_2(self, column):
        self._df ## ==> This shows the methods related to pyspark dataframe methods 
        def add_columns(column):
             self._df = self._df.withColumn(column, lit('Hello'))
        self._df ## ==> This shows the Pyspark dataframe methods 
        return self
EN

回答 1

Stack Overflow用户

发布于 2020-02-07 03:14:46

它不工作听起来很奇怪,因为.withColumn()返回一个Dataframe对象,看看源code

您可以尝试执行以下操作,显式声明_df属性的类型:

代码语言:javascript
复制
from pyspark.sql import Dataframe

class OptExtender:
    def __init__(self, df):
       self._df: Dataframe  = df    

def add_columns(self, column):
    self._df = self._df.withColumn(column, lit('Hello'))
    self._df ## ==> Now it should work
    return self._df
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59055519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档