我是Spark的初学者。我正在使用Pyspark将旧的Python代码转换为Spark。
我想得到一个与下面的代码等效的Pyspark
usersofinterest = actdataall[actdataall['ORDValue'].isin(orddata['ORDER_ID'].unique())]['User ID']
Run Code Online (Sandbox Code Playgroud)
两者,actdataall并orddata有星火dataframes。
toPandas()考虑到与之相关的缺点,我不想使用函数。
任何帮助表示赞赏。
上下文: 我需要使用isin函数基于包含另一个数据框的列的内容过滤数据框。
对于使用熊猫的Python用户,应该为:isin()。
对于R用户,应为:%in%。
所以我有一个带有id和value列的简单spark数据框:
l = [(1, 12), (1, 44), (1, 3), (2, 54), (3, 18), (3, 11), (4, 13), (5, 78)]
df = spark.createDataFrame(l, ['id', 'value'])
df.show()
+---+-----+
| id|value|
+---+-----+
| 1| 12|
| 1| 44|
| 1| 3|
| 2| 54|
| 3| 18|
| 3| 11|
| 4| 13|
| 5| 78|
+---+-----+
Run Code Online (Sandbox Code Playgroud)
我想获取所有出现多次的ID。这是df中唯一ID的数据框:
unique_ids = df.groupBy('id').count().where(col('count') < 2)
unique_ids.show()
+---+-----+
| id|count| …Run Code Online (Sandbox Code Playgroud)