在map函数内部调用SPARK SQL

时间:2019-02-07 07:14:17

标签: apache-spark apache-spark-sql apache-spark-dataset

在我的代码中,我有一个需求,我需要为dataset的每一行调用spark sql。

现在,spark sql需要在map函数内部使用SparkSession,无法将其作为广播变量传递。

那么,是否可以在 map function 内部调用Spark SQL?

我已经在线检查过,但是找不到与之相关的任何信息。

我正在使用Java作为SPARK的编程语言。

SPARK VERSION:2.3.0

谢谢。

1 个答案:

答案 0 :(得分:-1)

Map在Dataset的每个项目上应用函数,并返回另一个Dataset。您需要在这里用org.apache.spark.api.java.function.ForeachFunction遍历每个项目。然后,您可以为每个项目执行spark sql。

示例:

data.foreach((ForeachFunction<Row>) row -> System.out.println(row));