Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Pyspark Rdd映射函数中传递python类对象_Python_Serialization_Pyspark_Apache Spark Mllib - Fatal编程技术网

在Pyspark Rdd映射函数中传递python类对象

在Pyspark Rdd映射函数中传递python类对象,python,serialization,pyspark,apache-spark-mllib,Python,Serialization,Pyspark,Apache Spark Mllib,在执行以下代码时,我将pyhton类对象传递给pyspark rdd映射函数,并得到以下错误: PicklingError:无法序列化对象:TypeError:无法pickle\u thread.RLock对象 我还尝试将其转换为静态方法,但问题仍然是一样的。 from pyspark import SparkContext, SparkConf import logging class test(object): def __init__(self, sc, logger):

在执行以下代码时,我将pyhton类对象传递给pyspark rdd映射函数,并得到以下错误: PicklingError:无法序列化对象:TypeError:无法pickle\u thread.RLock对象

我还尝试将其转换为静态方法,但问题仍然是一样的。

from pyspark import SparkContext, SparkConf
import logging

class test(object):
    def __init__(self, sc, logger):
        logger.info('Ind=side init method.')
        data = sc.parallelize([1,2,3,4])
        data.foreach(lambda x: test.log_data(x, logger))

    @staticmethod
    def log_data(data, logger):
        logger.info(data)


conf = SparkConf().setAppName('test')
sc = SparkContext(conf=conf)

logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)

test(sc, logger)