【发布时间】:2018-07-15 14:18:21
【问题描述】:
数据框中的“colA”列包含整数值:
+-----+
| colA|
+-----+
| 1|
| 2|
| 1|
| 3|
+-----+
这些整数值可以通过 Redis 字典映射到字符串:
+----+------+
| key| value|
+----+------+
| 1| a|
| 2| b|
| 3| c|
+----+------+
我需要创建一个新列“colB”,其中包含“colA”到字符串值的映射:
+-----+-----+
| colA| colB|
+-----+-----+
| 1| a|
| 2| b|
| 1| a|
| 3| c|
+-----+-----+
我的目标是向 Redis 发出批量请求,以避免每行单个 Redis 请求的延迟。
在 Spark Core API(即 RDD)中,我可以通过使用 mapPartitions 函数来做到这一点。有没有什么方法可以通过使用 Spark SQL API 来实现?
请注意,我想避免以下开销:
- 将数据帧转换为 RDD,反之亦然。
- 通过直接在 数据框。
【问题讨论】:
-
还有带有数据框的mapPartition函数。
标签: scala apache-spark dataframe apache-spark-sql