如何对数据框中的每个记录运行查询?

时间:2019-02-24 16:07:28

标签: apache-spark apache-spark-sql

我有一种情况,需要为数据帧中的每个记录运行查询。我在Spark Shell(Spark 1.6)中运行。我像df.rdd.map( row => sqlContext.sql("..."))一样尝试过,但是没有用。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用RDD.collect收集数据(到驱动程序)并映射到每一行以执行SQL查询。

df.rdd.collect.map(row => sqlContext.sql("..."))

考虑到数据的大小和驱动程序上可用的内存,这可能行不通。


df.rdd.map( row => sqlContext.sql("..."))不起作用的原因是,您想作为map的一部分向执行者提交查询,该查询由于必须在驱动程序上执行而无法正常工作。