在 map 函数中调用 SPARK SQL
Posted
技术标签:
【中文标题】在 map 函数中调用 SPARK SQL【英文标题】:calling SPARK SQL inside map function 【发布时间】:2019-02-07 07:14:17 【问题描述】:在我的代码中,我需要为 dataset
的每一行调用 spark sql。
现在,spark sql 需要 SparkSession
在 map 函数中,这不能作为广播变量传递。
那么,有没有办法在 map function
中调用 Spark SQL?
我在网上查过,但我找不到任何相关的信息。
我使用 Java 作为 SPARK 的编程语言。
SPARK 版本:2.3.0
提前致谢。
【问题讨论】:
你能写出你想要执行的 SQL 函数吗?向您提出您需要的解决方案会容易得多。 @ruslangm 我想在 SPARK 的 map 函数中触发简单的 SELECT 查询。 【参考方案1】:Map 对Dataset
的每个项目应用一个函数并返回另一个Dataset
。您需要在这里使用org.apache.spark.api.java.function.ForeachFunction
迭代每个项目。然后您可以为每个项目执行 spark sql。
例子:
data.foreach((ForeachFunction<Row>) row -> System.out.println(row));
【讨论】:
以上是关于在 map 函数中调用 SPARK SQL的主要内容,如果未能解决你的问题,请参考以下文章
Spark SQL:如何使用 JAVA 从 DataFrame 操作中调用 UDF