gpt4 book ai didi

apache-spark - PySpark isin 函数

转载 作者:行者123 更新时间:2023-12-03 09:24:31 26 4
gpt4 key购买 nike

我正在使用 PySpark 将我的旧 Python 代码转换为 Spark。
我想得到一个 PySpark 相当于:

usersofinterest = actdataall[actdataall['ORDValue'].isin(orddata['ORDER_ID'].unique())]['User ID']
actdataallorddata 都是 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()
  • 如果您的订单 ID 目标列表很小,那么您可以使用 furianpandit 的帖子中提到的 pyspark.sql isin 函数,不要忘记在使用之前广播您的变量(spark 会将对象复制到每个节点,使他们的任务成为快很多):

    orderid_list = orddata.select('ORDER_ID').distinct().rdd.flatMap(lambda x:x).collect()[0]
    sc.broadcast(orderid_list)
  • 关于apache-spark - PySpark isin 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44444632/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com