kno*_*one 3 scala apache-spark rdd
我有一个 DF,我将其显式转换为 RDD 并尝试获取每列的记录。无法在地图中获取它们中的每一个。以下是我尝试过的:
val df = sql("Select col1, col2, col3, col4, col5 from tableName").rdd
Run Code Online (Sandbox Code Playgroud)
结果 df 成为以下成员org.apache.spark.rdd.RDD[org.apache.spark.sql.Row]
现在我尝试通过以下方式访问此 RDD 的每个元素:
val dfrdd = df.map{x => x.get(0); x.getAs[String](1); x.get(3)}
Run Code Online (Sandbox Code Playgroud)
问题是,上述语句仅返回 map 最后一次转换中存在的数据,即 上存在的数据x.get(3)。有人可以让我知道我做错了什么吗?
最后一行始终从 返回map,在您的情况下x.get(3)会返回。
要返回多个值,您可以tuples按如下方式返回
val dfrdd = df.map{x => (x.get(0), x.getAs[String](1), x.get(3))}
Run Code Online (Sandbox Code Playgroud)
希望这有帮助!
| 归档时间: |
|
| 查看次数: |
6775 次 |
| 最近记录: |