gpt4 book ai didi

scala - 为什么我会收到Nullpointer异常

转载 作者:行者123 更新时间:2023-12-02 21:03:08 26 4
gpt4 key购买 nike

我正在尝试实现这样的事情

Object Main extends app {
val sc = new SparkContext(sparkConf)
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
val data = hiveContext.sql("select * from person").map(mapData(_))
println(data.collect())
def mapData(row:Row){
val data = new Person <- Java object
data.setName(getStringTrimmedToNull(row.getAs("name")))
data.setId(getStringTrimmedToNull(row.getAs("id")))
var salaryQuery = "select * from salary where id = '${id}'"
val query = salaryQuery. replace("${id}",data.getId)
hiveContext.sql(query).map(mapSalData(_))
}

def mapSalData(row:Row){
val salData = new Salary <= object for java class salary
//set data into the object
}

}

上面是我正在尝试做的伪代码,它在这一行返回空指针错误
 hiveContext.sql(query).map(mapSalData(_))

有人会对我做错什么有任何想法吗?

最佳答案

这是Spark初学者的常见错误。您不能在将在执行程序中运行的闭包中使用HiveContext(SQLContext,SparkSession或SparkContext)。

您可以重写SQL代码以使用join之类的select * from person p join salary s where p.id = s.id

关于scala - 为什么我会收到Nullpointer异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42657532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com