【发布时间】:2015-10-13 01:29:37
【问题描述】:
我很难实现一些看起来应该很容易的东西:
我的目标是使用第二个 RDD/dataframe 作为查找表或翻译字典在 RDD/dataframe 中进行翻译。我想在多个栏目中进行这些翻译。
解释问题的最简单方法是举例说明。假设我输入以下两个 RDD:
Route SourceCityID DestinationCityID
A 1 2
B 1 3
C 2 1
和
CityID CityName
1 London
2 Paris
3 Tokyo
我想要的输出 RDD 是:
Route SourceCity DestinationCity
A London Paris
B London Tokyo
C Paris London
我应该如何制作它?
这是 SQL 中的一个简单问题,但我不知道 Spark 中 RDD 的明显解决方案。 join、cogroup 等方法似乎不太适合多列 RDD,并且不允许指定要加入的列。
有什么想法吗? SQLContext 是答案吗?
【问题讨论】:
-
使用 Dataframe 和 SparkSQL 将帮助您找到所需的内容。它基本上是具有不同语法的 sql。
-
表/RDD 的大小是多少? CityID/CityName RDD 是否比 Route RDD 小几倍?在这种情况下,我会将 RDD 的结果收集为地图并广播它,以便它可以在每个 Worker 上进行本地查找。
标签: apache-spark pyspark pyspark-sql