(py)Sparkには2つの新人質問があります。(py)スパークパラレル化最尤法計算
from scipy.stats import multivariate_normal
from pyspark.sql.functions import UserDefinedFunction
from pyspark.sql.types import DoubleType
mle = UserDefinedFunction(multivariate_normal.pdf, DoubleType())
mean =1
cov=1
df_with_mle = df.withColumn("MLE", mle(df['reading']))
これはエラーをスローせずに実行します:私は、私はこれはUserDefinedFunction
を使用して、私の試みですscipyのダウンロードのmultivariate_normal.pdf()
rdd_dat = spark.sparkContext.parallelize([(0, .12, "a"),(1, .45, "b"),(2, 1.01, "c"),(3, 1.2, "a"),
(4, .76, "a"),(5, .81, "c"),(6, 1.5, "b")])
df = rdd_dat.toDF(["id", "reading", "category"])
df.show()
+---+-------+--------+
| id|reading|category|
+---+-------+--------+
| 0| 0.12| a|
| 1| 0.45| b|
| 2| 1.01| c|
| 3| 1.2| a|
| 4| 0.76| a|
| 5| 0.81| c|
| 6| 1.5| b|
+---+-------+--------+
を使用して「読み」列の可能性を計算する、以下のようにデータフレームを持っています
df_with_mle.show()
An error occurred while calling o149.showString.
:私は結果df_with_mle
を見たいとき、しかし、私は以下のエラーが出ます1)なぜこのエラーが発生するのですか?
2)私は次のように、mean
とcov
を指定したい場合:私はこれを行うことができますどのように、df.withColumn("MLE", mle(df['reading'], 1, 1))
?