Hadoop Spark数据帧,连接两个数据集,并通过记录的键和最新时间戳对记录进行重复数据消除

Hadoop Spark数据帧,连接两个数据集,并通过记录的键和最新时间戳对记录进行重复数据消除,hadoop,apache-spark,pyspark,spark-dataframe,rdd,Hadoop,Apache Spark,Pyspark,Spark Dataframe,Rdd,我需要一些帮助,以一种有效的方式连接两个数据集,并通过记录的键和最新时间戳对记录进行重复数据消除 用例:需要为每个表运行每日增量刷新,并每天提供提取的快照 对于每个表,获取每日增量文件:1.5亿条记录需要对历史完整卷文件(30亿)运行重复数据消除过程。重复数据消除过程需要通过复合主键运行,并通过时间戳获取最新记录。每个记录都包含一个键和一个时间戳。使用spark可以获得ORC和拼花地板格式的文件 你有任何你已经开始的代码可以作为一个起点分享吗?嗨,大卫,谢谢你的帮助。我有一个代码,它在功能上工作

我需要一些帮助,以一种有效的方式连接两个数据集,并通过记录的键和最新时间戳对记录进行重复数据消除

用例:需要为每个表运行每日增量刷新,并每天提供提取的快照

对于每个表,获取每日增量文件:1.5亿条记录需要对历史完整卷文件(30亿)运行重复数据消除过程。重复数据消除过程需要通过复合主键运行,并通过时间戳获取最新记录。每个记录都包含一个键和一个时间戳。使用spark可以获得ORC和拼花地板格式的文件

你有任何你已经开始的代码可以作为一个起点分享吗?嗨,大卫,谢谢你的帮助。我有一个代码,它在功能上工作正常,但在较大的数据集上表现不佳。我正在寻找一种有效处理连接/覆盖的方法。分组rdd=df_final.rdd.groupBy(lambda tuple:(tuple[2],tuple[3],tuple[4],tuple[5])。映射值(lambda v:list(v))排序的rdd=grouped_rdd.map(lambda(k,v):(k,排序的(v,key=lambda x:x[1],reverse=True)))uniq_rec rdd=sorted_rdd.map(lambda(k,v:(k,v[0]))histrdu=hist配对的rdu.rdd.map(lambda:[2],tuple[3],tuple[4],tuple[5]),tuple))@SriBaru check
window
spark中的函数。这可以帮助你。您使用的是哪个版本的spark?spark 1.6.1。我要试试窗户functions@IuriiNedostup,看起来窗口函数在我们的用例dense_tank()中是正确的。此外,我们正在使用完全外部联接。rdd_joined=hist_rdd_paired.fullOuterJoin(uniq_rec_rdd)。spark中有没有更好的方法连接两个更大的数据集