当前位置: 首页 > 面试题库 >

是否可以在Apache Spark中创建嵌套的RDD?

罗浩然
2023-03-14
问题内容

我正在尝试在Spark中实现K最近邻算法。我想知道是否可以使用嵌套的RDD。这将使我的生活更加轻松。考虑以下代码片段。

public static void main (String[] args){
//blah blah code
JavaRDD<Double> temp1 = testData.map(
    new Function<Vector,Double>(){
        public Double call(final Vector z) throws Exception{
            JavaRDD<Double> temp2 = trainData.map(
                    new Function<Vector, Double>() {
                        public Double call(Vector vector) throws Exception {
                            return (double) vector.length();
                        }
                    }
            );
            return (double)z.length();
        }    
    }
);
}

目前,此嵌套设置出现错误(我可以在此处发布完整日志)。可以放拳头吗?谢谢


问题答案:

不,这是不可能的,因为RDD的项必须可序列化,而RDD不可序列化。这是有道理的,否则您可能会通过网络传输整个RDD,如果其中包含大量数据,这将是一个问题。如果它不包含很多数据,则可能并且应该使用数组或类似的东西。

但是,我不知道您是如何实现K近邻的…但是要小心:如果您执行诸如计算每两个点之间的距离之类的操作,那么实际上这在数据集大小上是不可扩展的,因为它是O
(n2)。



 类似资料:
  • 问题内容: 代码示例: 是否可以创建名称为Bar的类的新实例?我尝试使用: 它找到该类,但是当我使用c.newInstance()时,它将引发InstantiationException。 问题答案: 您需要跳过几个步骤才能做到这一点。首先,您需要使用Class.getConstructor()查找要调用的对象: 返回一个构造函数对象,该对象反映此Class对象表示的类的指定公共构造函数。para

  • 嗨,我是新春批。 我有如下Spring批次的情况: 我需要运行所有促销的批处理[促销列表] > 在这里,我想再次从batch中读取上面的动态查询,因为它返回的结果至少为5万条记录。 以下是我所期待的过程,这在Spring批次中是否可行? 阅读促销【读者逐一阅读促销】 创建查询并将其放在上下文中 传递给下一个读者 读取器逐个读取事务 处理交易并计算积分 我这里的问题是不能写嵌套块[一个用于读取提升,

  • 问题内容: 我不确定这是什么技术术语,但请考虑一个接口: 然后是第二个界面: 是否可以将第二个接口设计为仅需要一个通用参数,然后使doSomethingRelated方法隐式提取其声明中的返回类型。这是不合法的,但这是我想知道是否可以通过其他方式完成: 编辑(关于赏金发布):在这一点上,我正在寻找的是语言需要这种重复的原因。直到现在,答案一直都没有得到答案。 问题答案:

  • 问题内容: 让我们考虑以下情况。有一个,有一个。子窗格将添加到父窗格。考虑到可以动态地添加和删除子窗格而没有任何限制和顺序的情况下,如何才能仅在可见子窗格的情况下使parentPane可见。当然childPane的可见状态也可以随时更改。是否可以创建动态Bindings.OR,以便我可以动态向其添加/删除子可见属性?如果是,那怎么办?如果没有,那么在这种情况下使用什么解决方案? 问题答案: 您可以

  • 问题内容: 如何在Python中使类或方法抽象? 我尝试像这样重新定义: 但是现在,如果我创建一个像这样继承的类: 那么我也无法实例化,因为它调用了其超类的方法。 有没有更好的方法来定义抽象类? 问题答案: 使用该模块创建抽象类。使用装饰器来声明方法摘要,并根据您的Python版本使用以下三种方式之一声明类摘要。 在Python 3.4及更高版本中,您可以从继承。在Python的早期版本中,您需要

  • 问题内容: 说我要制作以下JSON 目前,这就是我实现的方式 似乎应该有一个更好的方法来做到这一点,而不是做更多的事情,然后将它们放置在主体中。有比我正在使用的方法更好的动态构建方法吗? 在此先感谢您的帮助! 问题答案: 如果您处理大量JSON数据,我真的建议您使用Gson或Jackson。这要方便得多,并且两个库都很好地支持与Java对象之间的相互转换(与通过JSONObjects手动构建JSO