Apache spark pyspark中获得屈曲随机投影结果的最佳实践

Apache spark pyspark中获得屈曲随机投影结果的最佳实践,apache-spark,pyspark,Apache Spark,Pyspark,目前,我已经建立了一个BucketedRandomProjectionLSH模型,以便通过approxnearestneights计算数据的相似性。下面的代码是这样的 df = sql_context.read.format("org.apache.spark.sql.cassandra").options(table="data", keyspace="spark").load() brp = BucketedRandomProjectionLSH(inputCol="features", o

目前,我已经建立了一个
BucketedRandomProjectionLSH
模型,以便通过
approxnearestneights
计算数据的相似性。下面的代码是这样的

df = sql_context.read.format("org.apache.spark.sql.cassandra").options(table="data", keyspace="spark").load()
brp = BucketedRandomProjectionLSH(inputCol="features", outputCol="hashes", bucketLength=2.0,
                                  numHashTables=3)
model = brp.fit(df)

df_collected = df.collect()

for x in df_collected:
    result = model.approxNearestNeighbors(df, x["features"], 30).collect()
    write(result)  ## save result to db
我在想是否有任何方法可以分配for循环的工作负载

for x in df_collected:
    result = model.approxNearestNeighbors(df, x["features"], 30).collect()
    write(result)  ## save result to db
每台机器

我发现
foreach
foreachPartition
可以完成这项工作,但我已经尝试过了。他们不允许我通过那里的rdd
df


有没有解决这类问题的最佳方法?

试试
df.rdd.foreach
而不是
df.foreach
@Paul如何在foreach内部使用整个df?试试
df.rdd.foreach
而不是
df.foreach
@Paul如何在foreach内部使用整个df?