【发布时间】:2016-12-15 22:59:28
【问题描述】:
我每天使用 Spark scala 程序将 1000 万条记录从 Mysql 导入 Hive,并比较昨天和今天的数据集。
val yesterdayDf=sqlContext.sql("select * from t_yesterdayProducts");
val todayDf=sqlContext.sql("select * from t_todayProducts");
val diffDf=todayDf.except(yesterdayDf);
我正在使用 3 节点集群和程序,可以正常处理 400 万条记录。 由于 RAM 内存不足,我们面临超过 400 万的内存不足问题。
我想知道比较两个大型数据集的最佳方法。
【问题讨论】:
-
数据框有什么唯一键?
-
是的蒂亚戈。表有一个唯一的键。
-
其实SparkSQL api调用except是隐式调用spark api的减法。如果你有钥匙,你可以试试 todayDf.subtractByKey(yesterdayDf);
标签: apache-spark apache-spark-sql spark-streaming hadoop2