【问题标题】:Not able to put aggregated data into memory无法将聚合数据放入内存
【发布时间】:2020-05-16 21:03:16
【问题描述】:

我想将聚合数据放入内存但出现错误。有什么建议吗??

orders = spark.read.json("/user/order_items_json")

df_2 = orders.where("order_item_order_id == 2").groupby("order_item_order_id")

df_2.persist(StorageLevel.MEMORY_ONLY)**

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 AttributeError: 'GroupedData' 对象没有属性 'persist'

【问题讨论】:

    标签: apache-spark pyspark


    【解决方案1】:

    Spark 需要对分组数据进行聚合表达式。

    如果您不需要对分组数据进行任何聚合,那么我们可以进行一些虚拟聚合,例如 first,count...etc 并从.select 删除列,如下所示:

    import pyspark
    
    df_2 = orders.where("order_item_order_id == 2").groupby("order_item_order_id").agg(first(lit("1"))).select("order_item_order_id")
    #or
    df_2 = orders.where("order_item_order_id == 2").groupby("order_item_order_id").count().select("order_item_order_id")
    
    df_2.persist(pyspark.StorageLevel.MEMORY_ONLY)
    

    【讨论】:

    • 非常感谢舒....我也意识到我错过了功能....非常感谢您的及时回复。
    • 你好舒,我不明白我需要点击哪里来关闭这个帖子。
    猜你喜欢
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 2011-09-08
    • 2016-08-22
    • 2016-09-06
    • 2013-04-03
    相关资源
    最近更新 更多