在我的代码中,我有一个需求,我需要为dataset
的每一行调用spark sql。
现在,spark sql需要在map函数内部使用SparkSession
,无法将其作为广播变量传递。
那么,是否可以在 map function
内部调用Spark SQL?
我已经在线检查过,但是找不到与之相关的任何信息。
我正在使用Java作为SPARK的编程语言。
SPARK VERSION:2.3.0
谢谢。
答案 0 :(得分:-1)
Map在Dataset
的每个项目上应用函数,并返回另一个Dataset
。您需要在这里用org.apache.spark.api.java.function.ForeachFunction
遍历每个项目。然后,您可以为每个项目执行spark sql。
示例:
data.foreach((ForeachFunction<Row>) row -> System.out.println(row));