簡體   English   中英

TypeError:模式應為StructType或list或None

[英]TypeError: schema should be StructType or list or None

有人可以向我解釋我的代碼中發生了什么嗎? 下面,我提供了一個可復制的小片段。 當我執行df = spark.createDataFrame(rows, mh.get_schema) ,出現以下錯誤:

TypeError: schema should be StructType or list or None, but got:
<bound method MyHandler.get_schema of <my_handler.MyHandler instance
at 0x7f2f359890e0>>

但為什么??? 該模式在MyHandler __init__(self)MyHandler

class MyHandler:

    def __init__(self):

        self.alarm_schema = StructType(
            [
                StructField('alarm_id', StringType()),
                StructField('timestamp',LongType())
            ])

    def get_schema(self):
        return self.alarm_schema


def main(argv):

    spark = SparkSession \
                 .builder \
                 .appName("Test") \
                 .master("local[2]") \
                 .getOrCreate()

    mh = MyHandler()

    rows = [
            (
                "12",
                1536585248000
            )
    ]

    df = spark.createDataFrame(rows, mh.get_schema) 


if __name__ == '__main__':
    main(sys.argv[1:])

調用方法:

df = spark.createDataFrame(rows, mh.get_schema()) 

或使其成為財產

@property
def get_schema(self):
    return self.alarm_schema

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM