【发布时间】:2020-08-24 04:25:59
【问题描述】:
我有一个场景从现有的RDD 捕获一些数据(不是全部),然后将其传递给其他Scala class 以进行实际操作。让我们看看文本文件中的示例数据(empnum、empname、emplocation、empsal)。
11,John,Paris,1000
12,Daniel,UK,3000
第一步,我通过下面的代码用RDD[String] 创建一个RDD,
val empRDD = spark
.sparkContext
.textFile("empInfo.txt")
所以,我的要求是创建另一个 RDD,使用 empnum、empname、emplocation(再次使用 RDD[String])。
为此我尝试了下面的代码,因此我得到了RDD[String, String, String]。
val empReqRDD = empRDD
.map(a=> a.split(","))
.map(x=> (x(0), x(1), x(2)))
我也试过Slice,它给了我RDD[Array(String)]。
我需要的 RDD 应该是 RDD[String] 以传递给所需的 Scala 类来执行一些操作。
预期的输出应该是,
11,John,Paris
12,Daniel,UK
谁能帮我实现?
【问题讨论】:
-
你可以尝试连接字符串并在你的第二个地图中返回,这将返回一个单一的字符串。或者您可以使用元组 3。
-
如果你觉得这很有用,你可以点击“评论添加对这篇文章有用的东西”按钮吗?
标签: scala apache-spark string-formatting rdd