我是Spark的初学者。我正在使用Pyspark将旧的Python代码转换为Spark。
我想得到一个与下面的代码等效的Pyspark
usersofinterest = actdataall[actdataall['ORDValue'].isin(orddata['ORDER_ID'].unique())]['User ID']
actdataall
和orddata
都是Spark数据帧。考虑到与之相关的缺点,我不想使用
toPandas()
函数。任何帮助表示赞赏。
最佳答案
首先,让我们创建一个数据框,其中包含我们要保留的顺序ID:
orderid_df = orddata.select(orddata.ORDER_ID.alias("ORDValue")).distinct()
现在,让我们将其与actdataall数据框一起加入:
usersofinterest = actdataall.join(orderid_df, "ORDValue", "inner").select('User ID').distinct()
orderid_list = orddata.select('ORDER_ID').distinct().rdd.flatMap(lambda x:x).collect()[0]
sc.broadcast(orderid_list)