制作和操作numpy数组,并将数据与pyspark一起使用

制作和操作numpy数组,并将数据与pyspark一起使用,numpy,pyspark,Numpy,Pyspark,我在pyspark.mllib.stat.KernelDensity中使用手工编制的测试数据时遇到问题。在numpy.float和Python的泛型float之间存在某种问题/差异,在使用(部分)pyspark时会出现这种问题;特别是使用numpy.float的断点构造的RDD 有没有一种方法可以创建NumPy数组,使它们的元素是python float而不是NumPy.float import pyspark import pyspark.mllib.stat import numpy sc

我在
pyspark.mllib.stat.KernelDensity
中使用手工编制的测试数据时遇到问题。在
numpy.float
和Python的泛型
float
之间存在某种问题/差异,在使用(部分)
pyspark
时会出现这种问题;特别是使用
numpy.float
的断点构造的RDD

有没有一种方法可以创建NumPy数组,使它们的元素是python float而不是
NumPy.float

import pyspark
import pyspark.mllib.stat
import numpy
sc = pyspark.SparkContext("local", 'test2')
rdd1 = sc.parallelize([1.0, 2.0, 3.0])
rdd2 = sc.parallelize(numpy.arange(1.0, 4.0, 1.0))
(kd1, kd2) = pyspark.mllib.stat.KernelDensity(), pyspark.mllib.stat.KernelDensity()
kd1.setBandwidth(0.2)
kd1.setSample(rdd1)
kd2.setBandwidth(0.2)
kd2.setSample(rdd2)
x = numpy.arange(0, 5.0, 0.1)
y1 = kd1.estimate(x)
y2 = kd2.estimate(x)
^kd2.1估计失败 尝试替换:

rdd2 = sc.parallelize(numpy.arange(1.0, 4.0, 1.0))

在第一个代码块中

rdd2 = sc.parallelize(numpy.arange(1.0, 4.0, 1.0))
rdd2 = sc.parallelize(numpy.arange(1.0, 4.0, 1.0).tolist())