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

Spark-Scala RDD

颛孙品
2023-03-14

我有一个RDDrdd1,其模式如下:

RDD[String, Array[String]] 

(我们称之为RDD1)

我希望创建一个新的RDDrdd2,每一行都为RDD[String,String],键和值属于rdd1

RDD1 =Array(("Fruit",("Orange","Apple","Peach")),("Shape",("Square","Rectangle")),("Mathematician",("Aryabhatt"))))

我希望输出如下:

RDD2 = Array(("Fruit","Orange"),("Fruit","Apple"),("Fruit","Peach"),("Shape","Square"),("Shape","Rectangle"),("Mathematician","Aryabhatt"))

有人能帮我处理这段代码吗?

我的尝试:

val R1 = RDD1.map(line => (line._1,line._2.split((","))))
val R2 = R1.map(line => line._2.foreach(ph => ph.map(line._1)))

错误:值映射不是Char的成员

我理解这是因为map函数只适用于RDDs,而不是每个String/char。请帮助我在spark中使用嵌套函数。

共有1个答案

郤令
2023-03-14

分解问题。

  1. (“fruit”,数组(“orange”,“apple”,“peach”)->数组((“fruit”,“orange”),(“fruit”,“apple”),(“fruit”,“peach”))

def flattenLine(line:(String,array[String]))=line.2.map(x=>(line._1,x)

rdd1.flatmap(flattenLine)

 类似资料:
  • 主要内容:1.RDD特点:,2.RDD的 5大属性,3.RDD的执行原理,4.Spark的核心组件1.RDD特点: 可变: 存储的弹性 容错的弹性 计算的弹性 分片的弹性 RDD 代码中是一个抽象类, 代表弹性的, 不可变, 可分区, 里面的元素可并行计算的集合, 为弹性分布式数据集。 RDD 不保存数据, 但是有血缘关系。 不可变的是逻辑, 如果想加入新的逻辑, 必须封装。 2.RDD的 5大属性 分区列表 分区计算函数 多个RDD有依赖关系 分区器: 一个分区的规则, 和Kafka 类似

  • 主要内容:1.From Memory,2.From File,3.From File1.From Memory 这里的makeRDD和parallelize没有区别, make底层用的就是parallelize函数 2.From File 3.From File 第二个方法返回了完整路径

  • 为什么 Spark 提供统一处理数据的方式(类似 SQL 基于 RDBMS) 降低应用开发和维护的成本 专注于怎么样使用工具,而不需要理解工具底层的原理 其他

  • 主要内容:1.Spark特点,2.Spark相对于Hadoop的优势,3.Spark生态系统,4.Spark基本概念1.Spark特点 Spark具有如下几个主要特点: 运行速度快:Spark使用先进的DAG(Directed Acyclic Graph,有向无环图)执行引擎,以支持循环数据流与内存计算,基于内存的执行速度可比Hadoop MapReduce快上百倍,基于磁盘的执行速度也能快十倍; 容易使用:Spark支持使用Scala、Java、Python和R语言进行编程,简洁的API设计有

  • 我试图在Kubernetes上运行Spark作为调度程序。 当使用从kubernetes集群外部运行时,它可以正常工作。 但是,每当我们尝试从pod中直接运行spark-shell或spark-submit时,它都不会起作用(即使使用从spark文档中执行rbac也不会起作用。我们有授权执行异常: io.fabric8.kubernetes.client.kubernetesclientExcep

  • 问题1.考虑到我有一个dataframe和一个schema,我如何将dataframe以avro格式写入kafka主题?

  • Spark 核心的概念是 Resilient Distributed Dataset (RDD):一个可并行操作的有容错机制的数据集合。有 2 种方式创建 RDDs:第一种是在你的驱动程序中并行化一个已经存在的集合;另外一种是引用一个外部存储系统的数据集,例如共享的文件系统,HDFS,HBase或其他 Hadoop 数据格式的数据源。 并行集合 外部数据集 RDD 操作 <<<<<<< HEAD