我执行联接使用javaHiveContext
的星火。
大表是1,76Gb并有100个百万记录。
第二个表是273Mb,有1000万的纪录。
我得到一个JavaSchemaRDD
和我打电话count()
就可以了:
String query="select attribute7,count(*) from ft,dt where ft.chiavedt=dt.chiavedt group by attribute7";
JavaSchemaRDD rdd=sqlContext.sql(query);
System.out.println("count="+rdd.count());
如果我强制broadcastHashJoin (SET spark.sql.autoBroadcastJoinThreshold=290000000)
和5节点上使用5执行与8个核心和存储器的20Gb它是在100秒执行。 如果我不勉强广播它在30秒内执行。
NB表存储为文件的实木复合地板。