如何把Spark RDD中的内容按行打印出来

发布网友 发布时间:2022-03-24 14:25

我来回答

3个回答

懂视网 时间:2022-03-24 18:47

rdd的特点如下:

  1、RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。

  2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。

  3、RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创建;有时也可以通过应用程序中的集合来创建。

  4、RDD最重要的特性就是,提供了容错性,可以自动从节点失败中恢复过来。即如果某个节点上的RDD partition,因为节点故障,导致数据丢了,那么RDD会自动通过自己的数据来源重新计算该partition。这一切对使用者是透明的。

  5、RDD的数据默认情况下存放在内存中的,但是在内存资源不足时,Spark会自动将RDD数据写入磁盘。

  

热心网友 时间:2022-03-24 15:55

一、2种方法
1 rdd.collect().foreach {println}
2 rdd.take(10).foreach { println }
//take(10) 取前10个
二、例子
val logData = sparkcontext.textFile(logFile, 2).cache()
logData.collect().foreach {println}
logData.take(10).foreach { println }

热心网友 时间:2022-03-24 17:13

  之前对RDD的理解是,用户自己选定要使用spark处理的数据,然后这些数据经过transaction后会被赋予弹性,分布特性的特点,具备这样特点的数据集,英文缩写就是RDD。
  但RDD再怎么有特性,还是数据集,在理解里就像关系型数据库里的表,里面是存储的数据,抓来就用。
  但之后看到dataframe和下面这张图之后,迷惑了……
  感觉似乎dataframe的结构才更符合对rdd的理解……好像transaction在赋予数据集弹性,分布特性的同时,还顺带把数据变成对象然后序列化存储了。
  如果是,那么是按照什么样的标准进行对象化的呢,是按照行,还是按照字段呢,还是按照非关系型数据库里的rowkey呢……那么这些对象化的数据都是怎么进行后续处理然后参与运算的呢
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com