Python сохранить класс частично - PullRequest
0 голосов
/ 08 января 2019

У меня есть класс, который имеет некоторые атрибуты, которые можно сериализовать, и некоторые, которые нельзя сериализовать. Я знаю типы сериализуемых и не сериализуемых объектов.

import numpy as np
import pandas as pd
from pyspark.ml.classification import RandomForestClassifier, RandomForestClassificationModel
import pickle
import pyspark

serializable_types = [int, float, str, list, dict, tuple, np.ndarray, pd.core.frame.DataFrame]
pyspark_ml_types = [pyspark.sql.dataframe.DataFrame, pyspark.ml.util.MLWriteable]

class BasicTypes:
    def __init__(self):
        self.name = "basic_types_2"
        self.pd_df = pd.DataFrame()
        self.np_arr = np.array([1,2,3])
        self._dictionary = {}
        self._list = [1,2,3]
        self._set = (1,2,3)
        self._str = "basicsave"
        self.model = RandomForestClassifier()
        self.fit_model = RandomForestClassificationModel()
    def save(self, filepath):
        with open(filepath + '/' + self.name+'.pickle', 'wb') as pickle_file:
            pickle.dump(self, pickle_file)

Фреймы данных Spark не сериализуются и, следовательно, должны храниться в виде файлов CSV или паркета.

Итак, есть ли способ, которым мы можем сохранить только те атрибуты класса и опустить не сериализуемые атрибуты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...