scala—将Dataframe划分为多个批

rqqzpn5f  于 2021-05-26  发布在  Spark
关注(0)|答案(0)|浏览(315)

我需要在数小时的Dataframe批上运行一组转换。小时数应该参数化,这样就可以更改了——例如,在3小时的Dataframe上运行转换,然后再运行2小时。这样,应该有一个步骤,为每个转换提供参数化的小时数。
转换的签名如下所示:

def transform(wordsFeed: DataFrame)(filesFeed: DataFrame): Unit

所以我想把这个划分成批,然后在这个数据源上调用一个转换。但我不能使用groupby,因为它会将dataframe更改为分组数据集,而我需要保留模式中的所有列。我该怎么做?

val groupedDf = df.srcHours.groupBy($"event_ts")
transform(keywords)(groupedDf)

数据架构如下所示:

root
 |-- date_time: integer (nullable = true)
 |-- user_id: long (nullable = true)
 |-- order_id: string (nullable = true)
 |-- description: string (nullable = true)
 |-- hashed_user_id: string (nullable = true)
 |-- event_date: date (nullable = true)
 |-- event_ts: timestamp (nullable = true)
 |-- event_hour: long (nullable = true)

引入这种批处理的主要原因是一次处理的数据太多。注意:在这种情况下,我仍然希望使用批处理数据,而不是流式处理

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题