Apache spark Pyspark:过滤DataaFrame,其中列值等于行对象列表中的某个值
我有一个Apache spark Pyspark:过滤DataaFrame,其中列值等于行对象列表中的某个值,apache-spark,pyspark,apache-spark-sql,pyspark-sql,Apache Spark,Pyspark,Apache Spark Sql,Pyspark Sql,我有一个pyspark.sql.Row对象列表,如下所示: [Row(artist=1255340), Row(artist=942), Row(artist=378), Row(artist=1180), Row(artist=813)] 从具有模式的(id,name)的数据帧中,我想筛选出id等于列表给定行中某个艺术家的行。正确的方法是什么 为了进一步澄清,我想做一些类似的事情:从dataframe中选择row.id位于row对象列表中的row主要问题是row对象列表有多大。如果它很小,那
pyspark.sql.Row
对象列表,如下所示:
[Row(artist=1255340), Row(artist=942), Row(artist=378), Row(artist=1180), Row(artist=813)]
从具有模式的(id,name)
的数据帧
中,我想筛选出id等于列表给定行中某个艺术家的行
。正确的方法是什么
为了进一步澄清,我想做一些类似的事情:从dataframe中选择row.id位于row对象列表中的row
主要问题是row对象列表有多大。如果它很小,那么@Karthik Ravindra提供的链接
如果它很大,那么您可以使用行对象的数据帧。在dataframe和dataframe_of_row_对象之间进行内部连接,并使用dataframe_of_row_对象中的艺术家列和原始dataframe中的id列。这将基本上删除不在\u行\u对象的dataframe\u中的任何id
当然,使用联接速度较慢,但更灵活。对于不小但仍然小到可以放入内存的列表,您可以使用广播提示来获得更好的性能。这里有一种方法:@KarthikRavindra非常感谢:)