Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Apache spark 火花:过滤器和;使用行值的withColumn?_Apache Spark_Pyspark - Fatal编程技术网

Apache spark 火花:过滤器和;使用行值的withColumn?

Apache spark 火花:过滤器和;使用行值的withColumn?,apache-spark,pyspark,Apache Spark,Pyspark,我需要为spark数据帧中的每一行创建一个名为sim_count的列,该列的值是数据帧中所有其他行的计数,这些行根据当前行的值匹配某些条件。当使用时是否可以访问行值 这样的事情可能吗?我已经使用UDF实现了这个逻辑,但是数据帧的rdd映射的序列化成本非常高,我正在尝试看看是否有更快的方法来找到这个计数值 编辑 可能重复使用expr例如:df.where(f.expr(“col1和col2之间的价目表”)Ah ok将尝试此操作!我想我会在我的数据帧中将expr存储为名为sim_expr的字符串列,

我需要为spark数据帧中的每一行创建一个名为
sim_count
的列,该列的值是数据帧中所有其他行的计数,这些行根据当前行的值匹配某些条件。当使用
是否可以访问

这样的事情可能吗?我已经使用UDF实现了这个逻辑,但是数据帧的rdd映射的序列化成本非常高,我正在尝试看看是否有更快的方法来找到这个计数值

编辑


可能重复使用
expr
例如:
df.where(f.expr(“col1和col2之间的价目表”)
Ah ok将尝试此操作!我想我会在我的数据帧中将
expr
存储为名为
sim_expr
的字符串列,然后执行
df.where(f.expr(“sim_expr”)
而不是不幸的是,我认为这行不通。你能尝试提供一个小样本数据帧和相应的所需输出吗?
df.withColumn('sim_count', 
                  f.when(
                    f.col("col_1").isNotNull(),
                    (
                        df.where(
                            f.col("price_list").between(f.col("col1"), f.col("col2"))
                        ).count()
                    )
                  ).otherwise(f.lit(None).cast(LongType()))
                  )