IndexedRDD用于流式上下文?

时间:2016-11-05 16:45:54

标签: join apache-spark indexedrdd

我想在Spark流式上下文中使用快速连接操作,例如A连接B,A是从文件读取的固定数据集,B是从套接字读取的小型流RDD。我尝试过spark提供的常用方法,5,000,000 RDD加入10个流RDD,费用为4秒。后来我尝试过使用IndexedRDD,但我做不到。我有以下问题:

  1. 慢4秒?我可以使用一些性能调整方法,如广播连接来改进吗?如果它很慢,为什么?我听说RDD的连接操作是线性搜索,是真的吗?

  2. IndexedRDD的连接操作能否比常用方法更快?

  3. 如何在流式上下文中使用IndexedRDD?我试过这种方式:

    streaming_rdd.transform{ rdd =>
                             indexed_data.innerJoin(IndexedRDD(rdd)){(id, a, b) => (a, b)}
    

    它通过了编译,但在运行时我得到了错误:

    java.lang.ClassCastException: scala.collection.immutable.$colon$colon cannot be cast to [Lscala.Tuple2;
    

    我不知道这是否是使用IndexedRDD的正确方法,我也不知道导致此错误的原因。有人可以帮助我吗?

0 个答案:

没有答案