我有一种情况,需要为数据帧中的每个记录运行查询。我在Spark Shell(Spark 1.6)中运行。我像df.rdd.map( row => sqlContext.sql("..."))
一样尝试过,但是没有用。有什么想法吗?
答案 0 :(得分:0)
使用RDD.collect
收集数据(到驱动程序)并映射到每一行以执行SQL查询。
df.rdd.collect.map(row => sqlContext.sql("..."))
考虑到数据的大小和驱动程序上可用的内存,这可能行不通。
df.rdd.map( row => sqlContext.sql("..."))
不起作用的原因是,您想作为map
的一部分向执行者提交查询,该查询由于必须在驱动程序上执行而无法正常工作。