Невозможно поместить агрегированные данные в память - PullRequest
1 голос
/ 06 мая 2020

Я хочу поместить агрегированные данные в память, но получаю ошибку. Любое предложение ??

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'

1 Ответ

1 голос
/ 06 мая 2020

Spark требует агрегации выражения для сгруппированных данных.

Если вам не нужны какие-либо агрегации для сгруппированных данных, тогда мы можем иметь некоторую фиктивную агрегацию, например , сначала, count. ..et c и удалите столбец из .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)
...