Iva*_*van 2 python apache-spark pyspark
我有一个大型数据帧,格式类似于
+-----+------+------+
|ID |Cat |date |
+-----+------+------+
|12 | A |201602|
|14 | B |201601|
|19 | A |201608|
|12 | F |201605|
|11 | G |201603|
+-----+------+------+
Run Code Online (Sandbox Code Playgroud)
我需要根据一个包含大约5000万个ID的列表来过滤行.直截了当的方式是过滤isin但是性能非常糟糕.如何完成此过滤器?
如果您致力于使用Spark SQL并且isin不再扩展,则内部equi-join应该是合适的.
首先将id列表转换为单列DataFrame.如果这是本地收藏
ids_df = sc.parallelize(id_list).map(lambda x: (x, )).toDF(["id"])
Run Code Online (Sandbox Code Playgroud)
并且join:
df.join(ids_df, ["ID"], "inner")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
729 次 |
| 最近记录: |