在 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 Streaming中的操作函数分析

Spark Streaming中的操作函数分析

如何解决嵌套地图函数中的 SPARK-5063

Spark SQL:如何使用 JAVA 从 DataFrame 操作中调用 UDF

可从 PySpark/Python 调用的 Spark(2.3+)Java 函数 [重复]

Spark Streaming中的操作函数讲解