【发布时间】:2019-12-17 11:15:32
【问题描述】:
我使用的是 spark-sql-2.4.1 版本。 创建如下广播变量
Broadcast<Map<String,Dataset>> bcVariable = javaSparkContext.broadcast(//read dataset);
我将 bcVariable 传递给函数
Service.calculateFunction(sparkSession, bcVariable.getValue());
public static class Service {
public static calculateFunction(
SparkSession sparkSession,
Map<String, Dataset> dataSet ) {
System.out.println("---> size : " + dataSet.size()); //printing size 1
for( Entry<String, Dataset> aEntry : dataSet.entrySet() ) {
System.out.println( aEntry.getKey()); // printing key
aEntry.getValue().show() // throw null pointer exception
}
}
这里有什么问题?如何在函数中传递数据集/数据框?
尝试 2:
Broadcast<Dataset> bcVariable = javaSparkContext.broadcast(//read dataset);
我将 bcVariable 传递给函数
Service.calculateFunction(sparkSession, bcVariable.getValue());
公共静态类服务{ 公共静态计算函数( 火花会话火花会话, 数据集数据集){
System.out.println("---> size : " + dataSet.size()); // throwing null pointer exception.
}
这里有什么问题?如何在函数中传递数据集/数据框?
尝试 3:
Dataset metaData = //read dataset from oracle table i.e. meta-data.
我将元数据传递给函数
Service.calculateFunction(sparkSession, metaData);
public static class Service {
public static calculateFunction(
SparkSession sparkSession,
Dataset metaData ) {
System.out.println("---> size : " + metaData.size()); // throwing null pointer exception.
}
这里有什么问题?如何在函数中传递数据集/数据框?
【问题讨论】:
标签: apache-spark apache-spark-sql