【发布时间】:2017-12-04 10:17:24
【问题描述】:
我有一个读入 RDD 的 .csv 文件:
val dataH = sc.textFile(filepath).map(line => line.split(",").map(elem => elem.trim))
我想按顺序迭代这个 RDD 并比较相邻元素,这个比较只依赖于数据结构的一列。不可能迭代 RDD,因此,想法是首先将 RDD 的列转换为 Dataset 或 Dataframe。
您可以将 RDD 转换为这样的数据集(如果我的结构是 RDD[Array[String]],这将不起作用:
val sc = new SparkContext(conf)
val sqc = new SQLContext(sc)
import sqc.implicits._
val lines = sqc.createDataset(dataH)
如何从dataH 获取我感兴趣的一列,然后仅从中创建数据集?
我使用的是 Spark 1.6.0。
【问题讨论】:
-
您使用的是哪个 spark 版本?
-
Spark 1.6,忘了说,抱歉!
-
不清楚你在问什么,你能举个例子(输入,预期输出)吗?
-
我有一个包含几列的 .csv 文件。我将其映射到由 Array[String] 组成的 RDD,其中 RDD 中的每个元素都是 csv 表中的一行。我想遍历表,但是因为我只需要考虑一列,我想将 RDD [Array [String]] 的一列转换为 Dataset [String]。 (或 Dataframe,如果它更容易/更好)
标签: scala apache-spark rdd