当前位置: 首页 > 知识库问答 >
问题:

Spark map和flatMap结果类型

应志用
2023-03-14

看起来map和flatMap返回不同的类型。

myschamard.map(p=>row.fromseq(...))返回applySchema函数(或spark 1.3中的createDataFrame)所需的org.apache.spark.rdd.rdd[org.apache.spark.sql.row]。

但是,myschamardd.flatmap(p=>row.fromseq(...)返回org.apache.spark.rdd.rdd[Any],我不能调用applySchema()。

如何在flatMap()之后使用applySchema()?

Bob, "Software developer"
John, "I like spaghetti"

结果:

Bob, Software
Bob, Developer
John, I
John, like
John, spaghetti

共有1个答案

梅安平
2023-03-14

也许我误解了您创建schemardd的方式,或者您误解了flatmap的工作方式。你试过这个吗?

mySchemaRDD.flatMap( p => p.getString(1).split(" +").map( x => Row((p.getString(0), x))))

我认为myschamardd.flatmap(p=>row.fromseq(...))不是flatmap的恰当用法,因为您应该返回嵌入在某个东西中的一系列东西,以便将其扁平化并提取您真正想要返回的东西。在本例中,您将它嵌入中,而要返回的结果类型是本身。

 类似资料:
  • 主要内容:分发结果类型:,FreeMaker结果类型:,重定向结果类型:正如前面提到的,<results>标签在Struts2的MVC框架的视图中所扮演的角色。动作是负责执行业务逻辑。执行业务逻辑后,接下来的步骤是使用<results>标签显示的视图。  经常有一些附带导航规则的结果。例如,如果在操作方法是对用户进行验证,有三种可能的结果。 (一)成功登录;(二)不成功的登录,用户名或密码错误;(三)帐户锁定。 在这种情况下的动作方法将被配置呈现的结果有三种可能的结果

  • 请考虑以下简单代码: 很长一段时间以来,我认为即使在之后,Java也会对元素进行并行执行。但是上面的代码打印了所有的“thread:main”,这证明了我的想法是错误的。 在之后使其并行的一个简单方法是收集并再次流: ==========关于问题的更多澄清========= 从一些回答来看,我的问题似乎传达得并不充分。正如@Andreas所说,如果我从3个元素的流开始,那么可能有3个线程在运行。

  • 我有一个struct类型的对象数组 现在我想要一个数组,其中每个对象数组的所有元素组成如下所示: 结果: 紧凑型:[[1,2][1,2][1,2][1,2]]扁平:[1,2,1,2,1,2] 由于平面图在Swift 4.1中已弃用,我尝试使用compactMap,但它给出了数组数组而不是单个数组。 如何通过compactMap实现,就像我通过flatMap实现一样。

  • 如前所述, 《results》标签在Struts2 MVC框架中扮演view的角色。 该操作负责执行业务逻辑。 执行业务逻辑后的下一步是使用《results》标记显示视图。 通常会在结果中附加一些导航规则。 例如,如果操作方法是对用户进行身份验证,则有三种可能的结果。 成功登录 登录失败 - 用户名或密码不正确 帐户被锁定 在这种情况下,操作方法将配置三个可能的结果字符串和三个不同的视图来呈现结果

  • 综述 “以古为镜,可以知兴替;以人为镜,可以明得失。” 本文采用编译器:jupyter     首先提出一个关于分类准确度的问题: 一个癌症预测系统,输入体检信息就可以判断病人是否患有癌症。 如果这个系统的预测准确度为99.9%,这个系统是好是坏?   虽然99.9%的概率看上去比较大,但如果癌症产生的概率只有0.1%的话,我们辛辛苦苦做出来的系统和一个预测所有人都是健康的系统的性能完全相同;如果

  • 我正在尝试使用struts2-jasper的插件,但得到一个错误的类型结果: 我用谷歌搜索了如何解决它,但什么都没有,我应该有正确的配置,但也许有人可以看到我的错误,请帮助我!! 我正在使用struts2 jasper报告和注释。我的struts.xml 操作文件