【发布时间】:2019-06-08 17:10:29
【问题描述】:
我一直在玩 Apache Spark,首先我学习了 PostgreSQL,我有一些查询需要在 Spark 上运行。我设法在 Spark SQL 中将它们作为 SQL 字符串运行,但现在我必须执行 RDD 操作才能获得相同的结果。我将数据从 csv 加载到地图。现在我必须在这些地图中选择特定的列,但我不知道如何加入它们(多个地图/csv 文件)。我的第二个问题是如何最好地执行 RDD 操作以便从 postgresql 查询中获得相同的结果?
我尝试阅读 RDD 操作,其中包括转换,其中包括连接,但它不允许我加入地图。
其中一个查询:
SELECT Tournaments.TYear,Countries.Name,Max(Matches.MatchDate) -
Min(Matches.MatchDate) AS LENGTH
FROM Tournaments,Countries,Hosts,Teams,Matches
WHERE Tournaments.TYear = Hosts.TYear AND Countries.Cid = Hosts.Cid
AND (Teams.Tid = Matches.HomeTid OR Teams.Tid = Matches.VisitTid) AND
date_part('year', Matches.MatchDate)::text LIKE (Tournaments.TYear ||
'%')
GROUP BY Tournaments.TYear,Countries.Name
ORDER BY LENGTH,Tournaments.TYear ASC
【问题讨论】:
-
您是在 Postgres 还是 Apache Spark 上运行这些查询?
-
我写的查询示例是针对 Postgres 的,但我需要只使用 RDD 操作。
标签: sql csv apache-spark