Zha*_*Xin 1 scala apache-spark rdd
我有一个数据框df.show()像这样:
+-----------+-------------------+
|id| name|
+-----------+-------------------+
| 1231| aa |
| 1232| bb |
| 1233| cc |
| 1234| dd |
| 1235| dd|
| 1236| cc|
+-----------+-------------------+
Run Code Online (Sandbox Code Playgroud)
“id”列是唯一的,现在我要创建一个键为“id”,值为“name”的映射,如何通过scala实现它?假设数据帧名称是 df。
val mapResult = df.map(...)
Run Code Online (Sandbox Code Playgroud)
您可以简单地转换rdd并使用collectAsMap
df.rdd.map(x => (x.getInt(0), x.getString(1))).collectAsMap()
Run Code Online (Sandbox Code Playgroud)
这会给你
scala> df.rdd.map(x => (x.getInt(0), x.getString(1))).collectAsMap()
res0: scala.collection.Map[Int,String] = Map(1231 -> aa, 1234 -> dd, 1236 -> cc, 1233 -> cc, 1232 -> bb, 1235 -> dd)
Run Code Online (Sandbox Code Playgroud)
仅当您的数据适合驱动程序时才建议使用collectAsMap。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
5810 次 |
| 最近记录: |